Закрытие половинных участков. - страница 11

 

DomGilberto: C) Not sure what difference this makes?

То же самое, что и A). Если TP равен нулю, вы не выполнили первое закрытие. Установите TP, а затем выполните частичное закрытие.
 
Окей - я уже довольно близко подошел к тому, чтобы разобраться с этим (просто записываю то, что мне нужно исправить / как / и применяемую логику)

Одна область, с которой я борюсь, это то, как я проверяю каждый отдельный тик ПОСЛЕ того, как OP_BUYSTOP был запущен в OP_BUY. На данный момент я собираюсь продолжать работать с одной сделкой и делать частичные закрытия - чисто на основании того, что я уверен, что почти сделал это?

Я очень ценю вклад в эту тему - это очень помогло мне многое понять :) так что еще раз спасибо за ваше время!!!
 
DomGilberto:
Хорошо - я уже довольно близко подошел к тому, чтобы разобраться с этим (просто записываю то, что нужно исправить / как / и применяю логику).

Одна область, с которой я борюсь, это то, как я проверяю каждый отдельный тик ПОСЛЕ того, как OP_BUYSTOP был запущен в OP_BUY.

Вы не можете, вы должны проверять каждый тик, чтобы увидеть, сработал ли OP_BUYSTOP на OP_BUY ... но что вы можете сделать, так это проверить, есть ли у вас какие-либо OP_BUY, если нет, то вы можете просто вернуть(0); и избежать остальной части кода.

Поможет ли это?

 
Подождите, значит, я не могу проверять каждый тик? Я хочу убедиться, что частичное закрытие закрывается, как только ставка == цене, которую я хочу? На данный момент он закрывается, если Bid == цене выхода на ежечасной основе - что вы заметили с помощью "IfIsNewCandle"? То есть это действительно забавный и странный способ закрытия...

Допустим, мой "OP_BUYSTOP" сработал на "OP_BUY", могу ли я тогда проверять каждый тик, чтобы моя функция OrderClose() закрылась по желаемой цене СЕЙЧАС, как только бид == указанной цене выхода?
 
DomGilberto:

Допустим, мой "OP_BUYSTOP" сработал на "OP_BUY", могу ли я тогда проверить каждый тик, чтобы моя функция OrderClose() закрылась по желаемой цене СЕЙЧАС, как только цена покупки == указанной цене выхода?
Да, вы ДОЛЖНЫ проверять каждый тик... но я имел в виду, что вам не нужно делать все для каждого тика ... вы сказали "как я проверяю каждый тик ДО ТОГО, как OP_BUYSTOP сработал в OP_BUY.", я имел в виду, что вы не можете проверять каждый тик только ПОСЛЕ того, как OP_BUYSTOP стал OP_BUY, вы должны проверять, произошло ли это на каждом тике.
 
А, да, я вас понял - моя ошибка. Неправильно прочитал то, что вы написали.

Я не знаю, как это делается. Не могли бы вы указать мне правильное направление?
 
DomGilberto:
А, да, я вас понял - моя ошибка. Неправильно прочитал то, что вы написали.

Я не знаю, как это делается. Не могли бы вы указать мне правильное направление?
Просто простой цикл, как у вас уже есть, перебирающий открытые ордера и проверяющий OrderType() ... может быть небольшое преимущество, с точки зрения производительности, в добавлении этого в ваш код, без проверки я не могу сказать наверняка.
 
Извините, я имел в виду, есть ли встроенная функция в MQL4, которую я должен использовать, чтобы проверить каждый тик?
 
DomGilberto:
Извините, я имел в виду, есть ли встроенная функция в MQL4, которую я должен использовать, чтобы проверить каждый тик?
Нет, start() вызывается каждый тик... но в настоящее время вы вызываете CheckForMaTrade() только когда есть новая свеча ( IsNewCandle()), вам нужно делать это для каждого тика.
 
Ах да - понял! Кажется, я знаю, как это сделать - теперь возвращаемся к игре :)
Причина обращения: