
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
double loss_for_1_lot = pips_to_bsl/ ts * tv ;
Это НЕ tv, которое приводит к div 0. Это может быть только ts. На 5-значном брокере ts может вывести ноль (4 цифры).
Мне кажется, что вы никогда не открывали эту пару, чтобы получить информацию о рынке от своего брокера, прежде чем загружать историю откуда-то еще.
Мне трудно поверить, что нулевое деление генерируется размещенным кодом.
DomGilberto скомпилируйте этот скрипт и прикрепите его к графику, который, по вашему мнению, возвращает нулевой размер тика.
Я надеюсь, что это видео, которое я сделал (40 секунд или около того), иллюстрирует то, о чем я говорю (так как я не уверен, что объясняю понятно или нет).
Видео: http://screencast.com/t/uMHY5DpM
Вы увидите, что в первой части, когда я бросаю скрипт на живой график (реальный счет), значение тика и размер тика возвращают "0" на этом "условном счете", который я иллюстрирую в окне лотов (единиц).
Вторая часть - с тем же брокером, но на основе лота, и на этот раз он возвращает значение тика и размер тика. Опять же, я иллюстрирую, что вы торгуете, используя лоты.....
Что касается тестера стратегий, я понятия не имею, почему он работает, а иногда нет. Счет был подключен, пока я запускал обратные тесты (на демо условном счете (единицы)).
Мой следующий вопрос: если это типичный ответ, который я получаю от условного счета, можете ли вы предложить, как мне исправить расчет размера позиции в таких обстоятельствах? Он прекрасно работает для лотового фида... Надеюсь, это объясняет немного лучше?
Если вы используете другой код в вашем "тестовом" коде, то что это доказывает?
Вы знаете, что TICKVALUE возвращает текущее значение с настоящего момента ... даже во время выполнения теста стратегии? Поэтому для любой пары, где базовая валюта не является валютой депозита, это будет неверно, и ваши расчеты лота будут неверными ....
В вашем видео вы используете GBPUSD в первом случае, а затем GBPJPY во втором.
Я думаю, что если бы вы прикрепили свой скрипт к графику GBPUSD с нормальным лотом, вы бы получили значение tickvalue, но ticksize также был бы нулевым.
Это происходит потому, что в оповещениях вашего скрипта используются двойные значения, и поэтому 0.00001 будет выведено как 0.
Вместо этогоиспользуйте DoubleToStr(MarketInfo(Symbol(),MODE_TICKVALUE),8).
Итак, во-первых, спасибо всем за помощь.
Вот видео для "Gumrai" и "SDC", подтверждающее то, что вы оба просите меня сделать. Я обозначил скрипты вашими псевдонимами MQL4, которые, очевидно, соответствуют вашему коду, который вы разместили здесь. Видео: http://screencast.com/t/kglCd2hCae
Брокер и соответствующий фид не были изменены во время паузы. Это тоже условный счет фида (единицы).
@RaptorUK: Да, я знал, что TICKVALUE возвращает текущее значение. Я думаю, что ваша вторая часть, глядя на это сейчас, вроде как логична. Я запутался, как я могу использовать tickvalue как часть моего условного счета, чтобы убедиться, что размер позиции правильный...?
Итак, во-первых, спасибо всем за помощь.
Вот видео для "Gumrai" и "SDC", подтверждающее то, что вы оба просите меня сделать. Я обозначил скрипты вашими псевдонимами MQL4, которые, очевидно, соответствуют вашему коду, который вы разместили здесь. Видео: http://screencast.com/t/kglCd2hCae
Брокер и соответствующий фид не были изменены во время паузы. Это тоже условный счет фида (единицы).
@RaptorUK: Да, я знал, что TICKVALUE возвращает текущее значение. Я думаю, что ваша вторая часть, глядя на это сейчас, вроде как логична. Я запутался в том, как я могу использовать tickvalue как часть моего условного фид-счета, чтобы убедиться, что размер позиции правильный...?
Эти видео - боль, они слишком большие для моего экрана.
Почему бы просто не опубликовать код скрипта и результат оповещения.
Я не знаю, что вы вставили в скрипт, который должен был быть моим предложенным кодом, но это никак не может привести к "08".
Используйте
@RaptorUK: Да, я знал, что TICKVALUE возвращает текущее значение сейчас. Я думаю, что ваша вторая часть, если смотреть на это сейчас, вроде как логична. Я запутался в том, как я могу использовать tickvalue как часть моего условного счета, чтобы убедиться, что размер позиции правильный...?
Эти видео - боль, они слишком большие для моего экрана.
Почему бы просто не опубликовать код скрипта и результат оповещения.
Я не знаю, что вы вставили в скрипт, который должен был быть моим предложенным кодом, но это никак не может привести к "08".
Используйте
Извините - теперь я понял, что забыл поставить "DoubleToStr", моя вина!!!
TickSize = 0.00100000
TickValue = 0.00001026
(Введено на условном фиде GBPJPY)
@SDC Я просто скопировал ваш код отсюда и поместил его в новый скрипт. Это то, что было возвращено.
В этой области кода я вывел формулу, чтобы разложить математику - Где это происходит, это на отложенном ордере BUY... но эта часть кода "pips_to_ssl" - это pips to SELL stop loss.... Который НЕ используется для отложенного ордера со стопом на покупку.....
Ок, новое обновление, я поигрался с повторением точного места, где происходит деление на ноль.
В этой области моего кода я вывел формулу, чтобы разложить математику - Где это происходит, это на отложенном ордере на покупку... но эта часть кода "pips_to_ssl" - это пипсы для стоп-лосса на продажу.... Который НЕ используется для отложенного ордера со стопом на покупку.....
Я отсылаю вас к моему предыдущему сообщению
"Обратите внимание, что
также приведет к нулю, если pips_to_bsl равен нулю. Возможно ли это?"
bsl или ssl, та же кодировка.