Форум трейдеров » Торговые роботы, советники, индикаторы » Вопросы программирования
+ Подписаться
Страница 17 из 87 ПерваяПервая ... 715161718192767 ... ПоследняяПоследняя
  1. 1,156
    Комментарии
    4
    Темы
    1189
    Репутация Pro
    Аватар для zerkmax  
    Мастер форумных наук

    4 Медалей
    Цитата Сообщение от pavivas Посмотреть сообщение
    Если можно пример закрытия ордера по рынку.
    OrderClose(.....)
    так оставь как есть, просто знай, что тут проскальзывание не работает, если раньше указывали проскальзываение и цена изменилась больше, от ордер не закрывался, то сейчас ордер закроется все равно.
  2. 88
    Комментарии
    0
    Темы
    88
    Репутация Pro
     
    В начале пути

    2 Медалей
    Сейчас проганяю на демо.
    Ордера открыты 3 дня назад, а сделки на закрывются, хотя лимит времени 10с.
    На тестере тоже не работает.
    Позиции открываются, выставляются стопы, срабатывают , а по времени нет.

    Наверное не работает условие
    if ((TimeCurrent()-OrderOpenTime()>10)

    Может быть есть какие то нюансы?
  3. 1,156
    Комментарии
    4
    Темы
    1189
    Репутация Pro
    Аватар для zerkmax  
    Мастер форумных наук

    4 Медалей
    Цитата Сообщение от pavivas Посмотреть сообщение
    Сейчас проганяю на демо.
    Ордера открыты 3 дня назад, а сделки на закрывются, хотя лимит времени 10с.
    На тестере тоже не работает.
    Позиции открываются, выставляются стопы, срабатывают , а по времени нет.

    Наверное не работает условие
    if ((TimeCurrent()-OrderOpenTime()>10)

    Может быть есть какие то нюансы?
    я делал так
    (MathAbs(TimeMinute(TimeCurrent())-TimeMinute(OrderOpenTime()))>1)
    если существует больше минуты
  4. 88
    Комментарии
    0
    Темы
    88
    Репутация Pro
     
    В начале пути

    2 Медалей
    Цитата Сообщение от zerkmax Посмотреть сообщение
    я делал так
    (MathAbs(TimeMinute(TimeCurrent())-TimeMinute(OrderOpenTime()))>1)
    если существует больше минуты
    Большое спасибо буду пробовать.
  5. 2,974
    Комментарии
    7
    Темы
    2995
    Репутация Pro
     
    Banned

    4 Медалей
    Цитата Сообщение от pavivas Посмотреть сообщение
    Пробовал вместо MODE_ASK просто ASK .
    1. MODE_ASK - насколько помню;) - целая константа, к цене отношения не имеющая.. Работать не будет однозначно
    2. По аску закроется только короткая поза, причём если след тик вниз - закрыв по аск, елсе - по любой цене, да и то не всегда// так по результатам неоднократно-внимательных наблюдений;)
    3. Через 10 секунд ордера закрываются вполне нормально.. Я даже через 4 закрывал..
    Наверное не работает условие
    if ((TimeCurrent()-OrderOpenTime()>10)
    Работает!!!

    Ну и самое главное - OrderClose лучше не использовать вообще - профитный ордер может в минусе по след тику закрыться.. Где-то выше в этой ветке прописывал, и даже демо - закрываху пару раз выкладывал..
  6. 88
    Комментарии
    0
    Темы
    88
    Репутация Pro
     
    В начале пути

    2 Медалей
    Цитата Сообщение от EQU Посмотреть сообщение
    1. MODE_ASK - насколько помню;) - целая константа, к цене отношения не имеющая.. Работать не будет однозначно
    2. По аску закроется только короткая поза, причём если след тик вниз - закрыв по аск, елсе - по любой цене, да и то не всегда// так по результатам неоднократно-внимательных наблюдений;)
    3. Через 10 секунд ордера закрываются вполне нормально.. Я даже через 4 закрывал..

    Работает!!!

    Ну и самое главное - OrderClose лучше не использовать вообще - профитный ордер может в минусе по след тику закрыться.. Где-то выше в этой ветке прописывал, и даже демо - закрываху пару раз выкладывал..
    Всем большое спасибо! Разобрался всё работает.
  7. 2,008
    Комментарии
    4
    Темы
    2040
    Репутация Pro
     
    Мастер форумных наук

    3 Медалей
    А вот такая задачка
    Как определить, каким размером лота нужно открыться, что бы одно минимальное изменение цены было равно 20$(например)

    Проблема в том, что нужно, что бы это работало и на форексе и на фьючах. Я с удивлением, для себя, обнаружил:), что нельзя написать это одной формулой

    Например для форекса это будет так
    Lots=20 / MarketInfo(Symbol(),MODE_TICKVALUE);

    а для фьючей так
    Lots=20 * MarketInfo(Symbol(),MODE_TICKSIZE)) / MarketInfo(Symbol(),MODE_TICKVALUE);

    А придумать формулу чтобы подходила и туда и сюда неполучается
  8. 1,156
    Комментарии
    4
    Темы
    1189
    Репутация Pro
    Аватар для zerkmax  
    Мастер форумных наук

    4 Медалей
    Цитата Сообщение от Дмитрий2 Посмотреть сообщение
    А вот такая задачка
    Как определить, каким размером лота нужно открыться, что бы одно минимальное изменение цены было равно 20$(например)

    Проблема в том, что нужно, что бы это работало и на форексе и на фьючах. Я с удивлением, для себя, обнаружил:), что нельзя написать это одной формулой

    Например для форекса это будет так
    Lots=20 / MarketInfo(Symbol(),MODE_TICKVALUE);

    а для фьючей так
    Lots=20 * MarketInfo(Symbol(),MODE_TICKSIZE)) / MarketInfo(Symbol(),MODE_TICKVALUE);

    А придумать формулу чтобы подходила и туда и сюда неполучается
    а ты введи переменную которой назначишь либо то либо другое
  9. 2,974
    Комментарии
    7
    Темы
    2995
    Репутация Pro
     
    Banned

    4 Медалей
    Цитата Сообщение от Дмитрий2 Посмотреть сообщение
    А вот такая задачка
    Как определить, каким размером лота нужно открыться, что бы одно минимальное изменение цены было равно 20$(например)

    Проблема в том, что нужно, что бы это работало и на форексе и на фьючах. Я с удивлением, для себя, обнаружил:), что нельзя написать это одной формулой

    Например для форекса это будет так
    Lots=20 / MarketInfo(Symbol(),MODE_TICKVALUE);

    а для фьючей так
    Lots=20 * MarketInfo(Symbol(),MODE_TICKSIZE)) / MarketInfo(Symbol(),MODE_TICKVALUE);

    А придумать формулу чтобы подходила и туда и сюда неполучается
    К сожалению, с фьючерсами не работал.. И, похоже, не совсем в тему ответ будет..
    Но я размер лота определяю так..(для конкурса)

    LOT=NormalizeDouble(AccountEquity()/MarketInfo(Symbol(),MODE_MARGINREQUIRED)/50,1);
    if(LOT<0.1)LOT=0.1;
    if(LOT>20)LOT=20;

    50 - уровень отсутствия риска.. Двоечка - самый жлобский вариант..
  10. 4,819
    Комментарии
    10
    Темы
    4852
    Репутация Pro
    Аватар для Максимъ  
    Снеговик-флудовик

    5 Медалей
    Да, согласен.

    Ведь не так сложно определить торгуемый инструмент, записать его в переменную или в массив в зависимости от ситуации. Затем произвести ветвление если-то иначе-это. :)

    В первом случае, предположим, для форекса.
    Иначе CFD.

    Может быть и более, при помощи ключа можно сделать, для металлов, хотя суть та же. Можно хоть на каждый инструмент, таким образом, сделать.

    Вроде ничего сложного. :)

Вверх
РегистрацияX

чтобы писать, читать, комментировать