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

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: готовые решения « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: готовые решения  (Прочитано 5059 раз)
daytrader
Full Member
***
Сообщений: 174


Просмотр профиля Email
« : 22.04.2011, 12:32:43 »

Доброго дня. Я тут форум смотрю, все (в основном) делятся тем что им не хватает, и проблемами, но редко найдешь ответ на проблему. Предлагаю делиться решениями (не торговыми системами) всяко разного.
Я например сейчас решаю проблему с балансом на FORTS, и думаю выложить свое видение и решение, с обоснованием, почему именно так я решил "свою" задачу. Будет здорово если вы скажете что можно гораздо проще и исправите меня, ведь в общем баланс портфеля это не "грааль", а скорее "грабли" в ATF, как и многое другое.
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #1 : 22.04.2011, 15:15:45 »

Выкладывайте, это было бы очень интересно в том числе для разработчиков.
Записан
daytrader
Full Member
***
Сообщений: 174


Просмотр профиля Email
« Ответ #2 : 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. на одном инструменте так можно работать по разным индикаторам с разными ТФ, так как баланс для каждого можно вести отдельный.
« Последнее редактирование: 22.04.2011, 16:38:00 от daytrader » Записан
nikolz
Sr. Member
****
Сообщений: 285


Просмотр профиля Email
« Ответ #3 : 22.04.2011, 19:08:05 »

Я пока приостановил разработку торговых систем на ATF,
 так как много функций отсутствует.
Пришлось вернуться к КВИКУ (конкурентам).
  Буду ждать , когда возможности ATF станут соответствовать
 моим требованиям для разработки полноценного торгового робота.
в настоящее время на ATF без проблем делать практически любые индикаторы, чего нет у конкурентов.
Но торговые системы на ATF пока можно делать лишь игрушечные.
Ждемс.
Записан
daytrader
Full Member
***
Сообщений: 174


Просмотр профиля Email
« Ответ #4 : 28.04.2011, 10:43:18 »

ну если честно, в квике конечно есть ВСЕ и даже больше... просто у меня тут брокер только на транзаке, вот и приходится изобретать велосипед

Нашел еще один минус записи в файл. Если робота выключать и не оставлять на вечерку (FORTS) и включать его утром, то он переписывает баланс в зависимости от последнего сигнала на вечерке, что может быть ессно совсем иным. Так что утром после включения приходится редактировать баланс руками (до начала торгов!).

Но непонятно почему так... если сделку он не делает (после сигнала поставил строку на сделку), а в файл пишет.
Записан
Yegor Hi And
Full Member
***
Сообщений: 138


Просмотр профиля Email
« Ответ #5 : 08.06.2011, 22:15:30 »

Quote
Но непонятно почему так... если сделку он не делает (после сигнала поставил строку на сделку), а в файл пишет.

тоже заметил такую особенность, ATF как то проходит через оператор IF насквозь и сделка не происходит если условие не выполняется, а переменная (статическая) может поменяться, у вас в данном случае запись в файл...
Записан

Предлагаю реализовать Ваши торговые идеи на ATF, пишите в личку
Страниц: [1] Печать 
Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: готовые решения « предыдущая тема следующая тема »
Перейти в:  


Войти

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