Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
ФХЪРСап 13, 2024, 05:52:08 pm
Начало Помощь Поиск Войти Регистрация
Новости:

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

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, 2011, 08:47:03 pm »
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
Подсистема ATF / Re: Transaq Handy под разные ОС
« on: РЯаХЫп 23, 2011, 10:00:35 am »
а у квика версия под iOs вышла (iPhone и iPad)

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

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

170
Подсистема ATF / Re: готовые решения
« on: РЯаХЫп 22, 2011, 04:30:35 pm »
и так баланс на 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, 2011, 12:32:43 pm »
Доброго дня. Я тут форум смотрю, все (в основном) делятся тем что им не хватает, и проблемами, но редко найдешь ответ на проблему. Предлагаю делиться решениями (не торговыми системами) всяко разного.
Я например сейчас решаю проблему с балансом на FORTS, и думаю выложить свое видение и решение, с обоснованием, почему именно так я решил "свою" задачу. Будет здорово если вы скажете что можно гораздо проще и исправите меня, ведь в общем баланс портфеля это не "грааль", а скорее "грабли" в ATF, как и многое другое.

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

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

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

174
Подсистема ATF / Re: Вопрос по getBought() и getSold()
« on: РЯаХЫп 20, 2011, 03:24:52 pm »
привет Макс, пока никто тебе не ответил я добавлю:

в инструкции написано (как я понимаю) что эти переменные обнуляются и живут только с 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!