Так никто и не знает, - как работает встроенный в мт4 советник Moving Average ?
При вот таком условии (см. в коде ф-и открытия и закрытия поз)
if(iVolume("USDJPY_FX",60,0)>1)return;
По всем тикам, или по Ценам открытия ?
И если по Ценам открытия, то в каком случае (теоретически, хотя бы) при работе на тф=н1 этот советник может открыть/закрыть позицию в 16:43, т.е. в середине часа ?
Так никто и не знает, - как работает встроенный в мт4 советник Moving Average ?
При вот таком условии (см. в коде ф-и открытия и закрытия поз)
По всем тикам, или по Ценам открытия ?
И если по Ценам открытия, то в каком случае (теоретически, хотя бы) при работе на тф=н1 этот советник может открыть/закрыть позицию в 16:43, т.е. в середине часа ?
Теперь понятно, почему мой мультивалютный советник на конкурсном сервере открывает не более 10-15 процентов сделок. От общего числа сигналов на открытие.
А вот там, где мой приятель вместо if(Volume[0]>1) return;
вставил любимые всеми нами "строки" -
if(Time[0] == prevtime) return(0);//ждём появления нового бара prevtime = Time[0];//если появился новый бар, включаемся Там всё работает нормально !
double spv=0;double afm=AccountFreeMargin();double ttt0=0;
total=OrdersTotal();if(total >0){for(cnt =0; cnt < total; cnt++){OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);//---- проверяем есть ли открытые позицииif(OrderMagicNumber()<100){if(OrderLots()>0)
ttt0=ttt0+OrderLots();}}}if(ttt0==0&&AccountFreeMargin()>10000)// если откр поз нет и сумма депозита> числа n{
afm=5000;// оставляемая сумма на депозите
spv=AccountFreeMargin()-5000;// сумма перевода на другой счет}//----> далее AccountFreeMargin() должно быть равно afm
Подскажите как в поцессе работы советника имитировать ситуацию частичного снятия денег и перевода их на другой счет
LSP=GetLastSellPrice(Magic);//ЦЕНА установки посл. селл ордера
LBP=GetLastBuyPrice(Magic);//ЦЕНА установки посл. бай ордера//--------установка дополнит. ордеров------------ if((LSP-Bid)<=5*Point){OrderSend(Symbol(),OP_SELLLIMIT,gLotSell+IncLot,
LSP+Step*Point,3,0,0,"",Magic,0,Red);}if((Ask-LBP)<=5*Point){OrderSend(Symbol(),OP_BUYLIMIT,gLotBuy+IncLot,
LBP-Step*Point,3,0,0,"",Magic,0,Red);}
Так как есть открытые позиции, то должны открываться только дополнительные. А контроля на допустимую цену.
Так никто и не знает, - как работает встроенный в мт4 советник Moving Average ?
При вот таком условии (см. в коде ф-и открытия и закрытия поз)
По всем тикам, или по Ценам открытия ?
И если по Ценам открытия, то в каком случае (теоретически, хотя бы) при работе на тф=н1 этот советник может открыть/закрыть позицию в 16:43, т.е. в середине часа ?
Так никто и не знает, - как работает встроенный в мт4 советник Moving Average ?
При вот таком условии (см. в коде ф-и открытия и закрытия поз)
По всем тикам, или по Ценам открытия ?
И если по Ценам открытия, то в каком случае (теоретически, хотя бы) при работе на тф=н1 этот советник может открыть/закрыть позицию в 16:43, т.е. в середине часа ?
В случае ошибки функция iVolume() возвращает 0.
В случае ошибки функция iVolume() возвращает 0.
И о чем это говорит ? Мне непонятно.
Ведь не может же функция сотни раз подряд возвращать ошибку после открытия нового бара..
Ну с первым тиком, со вторым, с третьим. ....
Но вряд ли больше. Мне вообще непонятно, зачем во встроенном в мт4 советнике Moving Average введено в условие открытия/закрытия позиций выражение:
if(Volume[0]>1) return;
Ну зачем ?
if(Volume[0]>1) return;//если не первый тик в баре, то ждем следующего.
достаточно одной ошибки в середине бара.
Нормально должно работать только в тестере. наверное))
if(Volume[0]>1) return;
Ну зачем ?
Древний способ контроля баров. Работает исключительно в тестере.
Теперь понятно, почему мой мультивалютный советник на конкурсном сервере открывает не более 10-15 процентов сделок. От общего числа сигналов на открытие.
А вот там, где мой приятель вместо if(Volume[0]>1) return;
вставил любимые всеми нами "строки" -
if(Time[0] == prevtime) return(0);//ждём появления нового бара
prevtime = Time[0];//если появился новый бар, включаемся
Там всё работает нормально !
Добрый день. Вот советник из Code Base https://www.mql5.com/ru/code/8210
//---------
Не пойму в чем дело. При работе советника журнал начинает оч. скоро печатать ошибку открытия 130 и работа заклинивает!
До стопаута ещё далеко.
И это при том, что стопы в советнике равны нулю. Шаг установки ордеров соответствует и даже многократно превышает допустимый стопуровень.
Код оч. простой и легко читаемый.
Причем, ошибка обычно начинает появляться тогда, когда цена делает ГЭП или с появлением длинной свечи, - см. рисунок ниже.
Хотелось бы понять, в чем причина ошибки. Пож. подскажите.
Возможно ошибка сидит тут
Так как есть открытые позиции, то должны открываться только дополнительные. А контроля на допустимую цену.
Хотя почему тогда 130 ошибка