Что, нормализовать все пары будем по текущему инструменту ?
dsma2 = NormalizeDouble(SMA[2] - SMA[3], _Digits); // MA на участке 2-3 dsma1 = NormalizeDouble(SMA[1] - SMA[2], _Digits); // MA на участке 1-2
Что, нормализовать все пары будем по текущему инструменту ?
Что, нормализовать все пары будем по текущему инструменту ?
А как правильно реализовать чтобы без предупреждений было?
В исходном варианте так примерно:
int Digits_ = SymbolInfoInteger(Symbol_, SYMBOL_DIGITS) + 4;
dsma2 = NormalizeDouble(SMA[2] - SMA[3], Digits_); // MA на участке 2-3
dsma1 = NormalizeDouble(SMA[1] - SMA[2], Digits_); // MA на участке 1-2
А как правильно реализовать чтобы без предупреждений было?
В исходном варианте так примерно:
А при чем тут +4? Так вроде должно быть по логике вещей
int Digits_ = SymbolInfoInteger(Symbol_, SYMBOL_DIGITS); dsma2 = NormalizeDouble(SMA[2] - SMA[3], Digits_); // MA на участке 2-3 dsma1 = NormalizeDouble(SMA[1] - SMA[2], Digits_); // MA на участке 1-2
А при чем тут +4? Так вроде должно быть по логике вещей
Так тоже предупреждение идет:
possible loss of data due to type conversion Multik.mq5 218 18
что бы не было предупреждений, надо сделать конверсию вот так
int Digits_ = (int)SymbolInfoInteger(Symbol_, SYMBOL_DIGITS);
Хорошая работа, но не теряет ли смысл мультиинструментарий, когда вы торгуете сопряженными парами с одинаковыми настройками? Я бы ожидал, что их просадки будут происходить примерно в одно и то же время, и это может стать проблемой. Но, к сожалению, все валютные пары настолько взаимосвязаны, что это может быть неизбежно. На самом деле я тоже торгую парами EUR/USD GBP/USD вместе, но на одной из них я использую трендовый советник, а на другой - разворотный, с вершинами и низами.
что бы не было предупреждений, надо сделать конверсию вот так
request.volume = Money_M();
Этот советник является отличным примером организованного кода и имеет отличные комментарии. Однако у меня возник один вопрос, касающийся вашей функции размера лота под названием Money_M(). Что и где находится в дереве решений, стоящем за этим?
Я попытался найти информацию на сайте поддержки, но не смог найти никаких ссылок, и, похоже, она не связана с ассоциированным классом.
request.volume = Money_M();
Этот советник является отличным примером организованного кода и содержит отличные комментарии. Однако у меня возник один вопрос, касающийся вашей функции размера лота под названием Money_M(). Что и где находится в дереве решений, стоящем за этим?
Я попытался поискать на сайте поддержки, но не смог найти никакой ссылки, и, похоже, она не связана с ассоциированным классом.
double Money_M() { double Lots=AccountInfoDouble(ACCOUNT_FREEMARGIN)/100000*10; Lots=MathMin(5,MathMax(0.1,Lots)); if(Lots<0.1) Lots=NormalizeDouble(Lots,2); else { if(Lots<1) Lots=NormalizeDouble(Lots,1); else Lots=NormalizeDouble(Lots,0); } return(Lots); }
Эта функция используется для расчета размера торговых лотов.
double Lots=AccountInfoDouble(ACCOUNT_FREEMARGIN)/100000*10;
В этой строке вычисляется размер торговых лотов. Расчет производится на свободные средства(ACCOUNT_FREEMARGIN). Риск = 10% от доступных свободных средств.
Lots=MathMin(5,MathMax(0.1,Lots));В этой строке выполняется нормализация торговых лотов. 0.1 <= Lot <= 5.0

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Multik:
Автор: AM2