Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
17.04.2025, 17:39:00
Начало Помощь Поиск Войти Регистрация
Новости: ООО «Скрин маркет системз», правообладатель программы «Система брокерского обслуживания «TRANSAQ» официально заявляет, что не ведет никакой деятельности в мессенджерах или социальных сетях. 
Подробности на нашем сайте  WWW.TRANSAQ.RU.

Просмотр сообщений

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - daytrader

Pages: 1 ... 10 11 [12]
166
Подсистема ATF / SAR
« on: 27.04.2011, 20:47:03 »
Parabolic SAR (из примера)
Подскажите чтотут не так? Почему при реконнекте и при изминении масштаба (час, 5 минут и прочее) слетает прорисовка индикатора?

Code: [Select]
#samewindow
#line 0 dot maroon

extern step = 0.02;
extern init_step = 0.02;
extern max_step = 0.20;

var ac;
var trend;
var ep;

function init()
{
setInitCandles(1);
if (low < low[1]) {
trend = 1;
ep = high[0, 1];
line[0] = low;
}
else {
trend = -1;
ep = low[0, 1];
line[0] = high;
}
ac = init_step;
}

function calc()
{
if (trend == 1) {
if (high > ep) {
ep = high;
ac += step;
if (ac > max_step) {ac = max_step;}
}
line[0] = line[0][-1] + ac * (ep - line[0][-1]);
if (low < line[0]) {
trend = -1;
line[0] = ep;
ep = low;
ac = init_step;
}
}
else {
if (low < ep) {
ep = low;
ac += step;
if (ac > max_step) {ac = max_step;}
}
line[0] = line[0][-1] + ac * (ep - line[0][-1]);
if (high > line[0]) {
trend = 1;
line[0] = ep;
ep = high;
ac = init_step;
}
}
}

167
а у квика версия под iOs вышла (iPhone и iPad)

168
встроенный писатель кода это вообще издевательство, я пишу всегда так - в сторонней программе, сохраняю все там же, потом просто копипаст. Так и писать проще, и искать ошибки.

169
Подсистема ATF / Re: +/-
« on: 22.04.2011, 16:36:33 »
вот за функцию спасибо!
а вначале я так и писал  = -1, но подумал что это неверно

170
Подсистема ATF / Re: готовые решения
« on: 22.04.2011, 16:30:35 »
и так баланс на FORTS. Для себя я пока остановился на записи баланса в файл. Я не рассчитываю его, а всегда сверяю с файлом, и дописываю в файл. Это позволит переносить позицию овернайт.

Чего я НЕ смог сделать: робот всегда добавляет в файл новый баланс, даже если и не было сделки - он работает по сигналу. Таким образом сделка всегда идет "по рынку" - что бы "наверняка".

Сразу хочу предупредить, что я отказался от getBought() и getSold() так как данные функции работают только в торговую сессию, и тут овернайт просто невозможен без записи в файл.

И так: мои переменные
Code: [Select]
var file;
var balance; // баланс по портфелю
var balances; // положительный баланс для рассчета кол-ва лотов в заявке
var newBalance; // новый баланс после сделки
var quant = 1; // сколько торгуем
var quan; // кол-во с заявке

balances мне нужен для новой заявки... например при продаже я отнимаю от balances кол-во, а при покупке прибавляю. Что бы не путаться, я привожу баланс к положительному значению (не зависимо что это шорт или лонг)

далее в function calc()

Code: [Select]
file = new_object("file");
// чтение баланса из файла
file.ropen("balance.txt"); // открыли на чтение
balance = file.readLn();
file.close(); // закрыли

Тут первая строка в файле это просто число: 0 или 1... сколько бумаг в портфеле? Для начала надо выставить руками 0

далее для новой заявки простая арифметика:
Code: [Select]
// расчетный balances
if (balance <0) {balances = abs(balance);} // если шорт, то приведем перменную к плюсу
if (balance >=0){balances = balance;} // если лонг или вне позиции, оставим как есть

// кол-во в заявке
quan = balances+quant;

И теперь поступает сигнал на сделку и сама сделка (вместо сделки у меня пока сообщение):
Code: [Select]
if (balance >=0) {
// заявка
signal::alert("ПРОДАЖА: " + getSecName() + " " + quan + "шт." + getFormattedTime(getServerTime()));
// запись в файл после сделки
newBalance = balance-quan;
file.wopen("balance.txt"); // открыли на запись
file.writeLn(newBalance);
file.writeLn("след. сделка ПОКУПКА на " + quan + "шт. " + getFormattedTime(getServerTime()));
file.close(); // закрыли
}

Тут первая проверка на наличие шорта, если у меня уже есть шорт (связь могла оборваться) то сделки не будет.

Потом узнаем наш новый баланс (для шорта это будет newBalance = balance-quan; соответственно) и записываем его в файл.
Для тестирования я еще пишу время и что будем делать потом, но это не важно, так как при поступлении сигнала все равно мы берем баланс из файла и начинаем считать.

PS: ATF ver. 1.7 - если у вас 1.6 и меньше - время работать не будет.
 
МИНУСЫ:

1. сделка может не пройти а баланс мы уже поправили, так что работаем "по рынку".
2. если мы руками что-то натворили, робот этого не поймет.
3. в начале нужно создать файл и прописать туда 0 (ручной труд)

ПЛЮС:
1. на одном инструменте так можно работать по разным индикаторам с разными ТФ, так как баланс для каждого можно вести отдельный.

171
Подсистема ATF / готовые решения
« on: 22.04.2011, 12:32:43 »
Доброго дня. Я тут форум смотрю, все (в основном) делятся тем что им не хватает, и проблемами, но редко найдешь ответ на проблему. Предлагаю делиться решениями (не торговыми системами) всяко разного.
Я например сейчас решаю проблему с балансом на FORTS, и думаю выложить свое видение и решение, с обоснованием, почему именно так я решил "свою" задачу. Будет здорово если вы скажете что можно гораздо проще и исправите меня, ведь в общем баланс портфеля это не "грааль", а скорее "грабли" в ATF, как и многое другое.

172
Подсистема ATF / Re: +/-
« on: 22.04.2011, 07:42:53 »
о... спасибо, я думал функция какая-то есть :)

173
Подсистема ATF / +/-
« on: 21.04.2011, 17:58:41 »
Добрый вечер уважаемые. Столкнулся с арифметической проблемой, так сказать, и все действия вроде бы правильные но грешу я на один момент... как правильно отрицательное число привести к положительному?

Например у меня баланс -2 контракта, а для расчетов нужно этот "минус" убрать.

174
привет Макс, пока никто тебе не ответил я добавлю:

в инструкции написано (как я понимаю) что эти переменные обнуляются и живут только с 19-00 до 19-00 (след дня), т.е. торговую сессию.

Продолжу вопросом:
Как я понимаю, передать овернайт данные моего баланса можно только записав это дело в файл, и подкачать из файла. Можно пример?
как написать я примерно понял, а как вот прочесть? Что бы прям подгрузить переменную из файла?

PS
Весь этот трах только потому что баланс на FORTS не запрашивается, и приходится его выковыривать из торгов.

Pages: 1 ... 10 11 [12]


Войти

Powered by MySQL Powered by PHP Powered by SMF 2.0.10 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!