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

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Потолок количества заявок « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: Потолок количества заявок  (Прочитано 5412 раз)
makeev
Jr. Member
**
Сообщений: 85



Просмотр профиля Email
« : бХЭвпСап 09, 2011, 08:07:50 pm »

Я заметил, что на одной свечки робот может выставить только 2 заявки разных типов (long и short), а далее хоть и условия соблюдаются, но он их не выставит. Я предполагаю, что это сделано специально, дабы избежать ошибок, но все же возможно ли увеличить число заявок на одной свечки? 
Записан
daytrader
Full Member
***
Сообщений: 174


Просмотр профиля Email
« Ответ #1 : бХЭвпСап 12, 2011, 07:54:58 am »

да вроде бы нет таких ограничений. Все ограничения только у вас в коде
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #2 : бХЭвпСап 12, 2011, 10:09:21 am »

Используйте вместо buy, sell и transact buyMultiple, sellMultiple и transactMultiple.
Записан
makeev
Jr. Member
**
Сообщений: 85



Просмотр профиля Email
« Ответ #3 : бХЭвпСап 17, 2011, 06:26:32 am »

Используйте вместо buy, sell и transact buyMultiple, sellMultiple и transactMultiple.

Чтоб проверить написал вот такой скрипт(см. ниже) . Тут по умолчанию стоит один лот, но при исполнении сигнала на рынок выводится более чем один.  Получается, что при выставлении сделки не учитывается условие "and portfolio==0 " . Подскажите почему?











static portfolio=0;
var file;

function init(){

file = new_object("file");
file.ropen("portfolio"+getClient() +".txt");
if (file.isopen()) {
portfolio = file.readLn();
file.close();

}}

function onATFTrade(var id)
{
   var x = getTrade(id);
   var lots=x["quantity"];

   if ( x["operation"]==OP_BUY){portfolio=portfolio+x["quantity"];}   
   if ( x["operation"]==OP_SELL){portfolio=portfolio-x["quantity"];}   


   file.wopen("portfolio"+getClient() +".txt");
   file.seek(0);
   file.writeLn(portfolio);
   file.close();


}




function calc()
{

line[0]=portfolio;



if (close>high[-1] and portfolio==0  ){trade_action::buyMultiple(1,::lots);}

if (close<low[-1] and portfolio>0 ){trade_action::sellMultiple(portfolio,::lots);}


if (close<low[-1] and portfolio==0  ){trade_action::sellMultiple(1,::lots);}

if (close>high[-1] and portfolio<0 ){trade_action::buyMultiple(abs(portfolio),::lots);}




}


 
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #4 : бХЭвпСап 19, 2011, 10:13:56 am »

Скорее всего происходит примерно следующее:

1. Вызывается calc()
2. Выставляется заявка (заявка A)
3. Происходит какая-то другая рыночная сделка (не эта).
4. По этой сделке опять вызывается calc().
5. Внутри выставляется заявка (заявка Б).
6. Только после этого исполняется заявка А и происходит собственно сделка.
7. Потом уже исполняется заявка Б.

Таким образом между пунктами 3 и 5 еще сделка просто не прошла.
Записан
makeev
Jr. Member
**
Сообщений: 85



Просмотр профиля Email
« Ответ #5 : бХЭвпСап 19, 2011, 11:19:35 am »

Скорее всего происходит примерно следующее:

1. Вызывается calc()
2. Выставляется заявка (заявка A)
3. Происходит какая-то другая рыночная сделка (не эта).
4. По этой сделке опять вызывается calc().
5. Внутри выставляется заявка (заявка Б).
6. Только после этого исполняется заявка А и происходит собственно сделка.
7. Потом уже исполняется заявка Б.

Таким образом между пунктами 3 и 5 еще сделка просто не прошла.


"2. Выставляется заявка (заявка A)"   - я думал тут меня функция onATFTrade(var id) спасет.  у меня же нет подтверждения исполнения заявки.
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #6 : бХЭвпСап 20, 2011, 02:37:42 pm »

Да, функция onATFTrade вызывается сразу как совершается сделка, но дело в том, что прежде чем проихойдет ваша сделка, может пройти какие-то время (пусть доли секунды, но в это время может вызываться calc). Для отслеживания выставления заявки можно использовать onATFOrder.
Записан
Страниц: [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!