Просмотр сообщений
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
166
« on: РЯаХЫп 27, 2011, 08:47:03 pm »
Parabolic SAR (из примера) Подскажите чтотут не так? Почему при реконнекте и при изминении масштаба (час, 5 минут и прочее) слетает прорисовка индикатора?
#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
« on: РЯаХЫп 23, 2011, 10:00:35 am »
а у квика версия под iOs вышла (iPhone и iPad)
168
« on: РЯаХЫп 22, 2011, 04:44:20 pm »
встроенный писатель кода это вообще издевательство, я пишу всегда так - в сторонней программе, сохраняю все там же, потом просто копипаст. Так и писать проще, и искать ошибки.
169
« on: РЯаХЫп 22, 2011, 04:36:33 pm »
вот за функцию спасибо! а вначале я так и писал = -1, но подумал что это неверно
170
« on: РЯаХЫп 22, 2011, 04:30:35 pm »
и так баланс на FORTS. Для себя я пока остановился на записи баланса в файл. Я не рассчитываю его, а всегда сверяю с файлом, и дописываю в файл. Это позволит переносить позицию овернайт.
Чего я НЕ смог сделать: робот всегда добавляет в файл новый баланс, даже если и не было сделки - он работает по сигналу. Таким образом сделка всегда идет "по рынку" - что бы "наверняка".
Сразу хочу предупредить, что я отказался от getBought() и getSold() так как данные функции работают только в торговую сессию, и тут овернайт просто невозможен без записи в файл.
И так: мои переменные
var file; var balance; // баланс по портфелю var balances; // положительный баланс для рассчета кол-ва лотов в заявке var newBalance; // новый баланс после сделки var quant = 1; // сколько торгуем var quan; // кол-во с заявке
balances мне нужен для новой заявки... например при продаже я отнимаю от balances кол-во, а при покупке прибавляю. Что бы не путаться, я привожу баланс к положительному значению (не зависимо что это шорт или лонг)
далее в function calc()
file = new_object("file"); // чтение баланса из файла file.ropen("balance.txt"); // открыли на чтение balance = file.readLn(); file.close(); // закрыли
Тут первая строка в файле это просто число: 0 или 1... сколько бумаг в портфеле? Для начала надо выставить руками 0
далее для новой заявки простая арифметика:
// расчетный balances if (balance <0) {balances = abs(balance);} // если шорт, то приведем перменную к плюсу if (balance >=0){balances = balance;} // если лонг или вне позиции, оставим как есть
// кол-во в заявке quan = balances+quant;
И теперь поступает сигнал на сделку и сама сделка (вместо сделки у меня пока сообщение):
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
« on: РЯаХЫп 22, 2011, 12:32:43 pm »
Доброго дня. Я тут форум смотрю, все (в основном) делятся тем что им не хватает, и проблемами, но редко найдешь ответ на проблему. Предлагаю делиться решениями (не торговыми системами) всяко разного. Я например сейчас решаю проблему с балансом на FORTS, и думаю выложить свое видение и решение, с обоснованием, почему именно так я решил "свою" задачу. Будет здорово если вы скажете что можно гораздо проще и исправите меня, ведь в общем баланс портфеля это не "грааль", а скорее "грабли" в ATF, как и многое другое.
172
« on: РЯаХЫп 22, 2011, 07:42:53 am »
о... спасибо, я думал функция какая-то есть
173
« on: РЯаХЫп 21, 2011, 05:58:41 pm »
Добрый вечер уважаемые. Столкнулся с арифметической проблемой, так сказать, и все действия вроде бы правильные но грешу я на один момент... как правильно отрицательное число привести к положительному?
Например у меня баланс -2 контракта, а для расчетов нужно этот "минус" убрать.
174
« on: РЯаХЫп 20, 2011, 03:24:52 pm »
привет Макс, пока никто тебе не ответил я добавлю:
в инструкции написано (как я понимаю) что эти переменные обнуляются и живут только с 19-00 до 19-00 (след дня), т.е. торговую сессию.
Продолжу вопросом: Как я понимаю, передать овернайт данные моего баланса можно только записав это дело в файл, и подкачать из файла. Можно пример? как написать я примерно понял, а как вот прочесть? Что бы прям подгрузить переменную из файла?
PS Весь этот трах только потому что баланс на FORTS не запрашивается, и приходится его выковыривать из торгов.
|