Universal MA Cross EA - страница 105

 

Спасибо, Блейзербой,

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

 

Уважаемый Mrtools/Mladen

Можете ли вы установить параметр максимального расстояния как расстояние цены закрытия бара от медленной ma?

Текущая настройка бессмысленна, имхо.

Спасибо

Сачин

 
sachin_syd:
Уважаемый Mrtools/Mladen

Можете ли вы установить параметр максимального расстояния как расстояние цены закрытия бара от медленной ma?

Текущая настройка бессмысленна, имхо.

Спасибо

Сачин

Sachin

Просто найдите строку, которая выглядит следующим образом:

MaxDistance = MathFloor(MathAbs((FastMACurrent-SlowMACurrent)/pPoint));

и замените FastMACurrent на Close[1] (для закрытия первого закрытого бара) или Close[0] (для закрытия еще открытого бара).

 

Хорошо, я сделал это, теперь тестирую... спасибо.

не могли бы вы также помочь здесь: https: //www.mql5.com/en/forum/general

mladen:
Сачин

Просто найдите строку, которая выглядит следующим образом:

MaxDistance = MathFloor(MathAbs((FastMACurrent-SlowMACurrent)/pPoint));

и замените FastMACurrent на Close[1] (для закрытия первого закрытого бара) или Close[0] (для закрытия еще открытого бара).
 

Уважаемый Младен, проверьте, пожалуйста, почему не работает временной фильтр. Видите красные вертикальные линии на графике, где он не должен торговать, но торгует. В Ea я устанавливаю торговлю только в определенные часы. Большое спасибо

mladen:
Сачин

Просто найдите линию, которая проходит следующим образом:

MaxDistance = MathFloor(MathAbs((FastMACurrent-SlowMACurrent)/pPoint));

и замените FastMACurrent на Close[1] (для закрытия первого закрытого бара) или Close[0] (для закрытия еще открытого бара).
Файлы:
untitled.png  28 kb
untitled_1.png  29 kb
 

Здравствуйте, Младен,

Я не смог скомпилировать код mql4 из-за следующих ошибок:

extern string Pivot.Setting = "---------- Pivot Filter Setting";

extern bool Use.Pivot.Filter = false;

==> '.' - ожидается точка с запятой MACrossEAV1.5.mq4 77 28 if(Use.Pivot.Filter==true)

==> 'Use' - необъявленный идентификатор MACrossEAV1.5.mq4 458 7

'Pivot' - ожидаемый тип структуры или класса MACrossEAV1.5.mq4 458 11

'Filter' - структура или тип класса ожидается MACrossEAV1.5.mq4 458 17

Что я сделал не так?

Спасибо за помощь

 
StephFX:
Привет, Младен,

Я не смог скомпилировать код mql4 из-за следующих ошибок:

extern string Pivot.Setting = "---------- Pivot Filter Setting";

extern bool Use.Pivot.Filter = false;

==> '.' - ожидается точка с запятой MACrossEAV1.5.mq4 77 28 if(Use.Pivot.Filter==true)

==> 'Use' - необъявленный идентификатор MACrossEAV1.5.mq4 458 7

'Pivot' - ожидаемый тип структуры или класса MACrossEAV1.5.mq4 458 11

'Filter' - структура или тип класса ожидается MACrossEAV1.5.mq4 458 17

Что я сделал не так?

Спасибо за помощь

StephFX

Удалите "." из имени переменной.

Вы можете заменить его, например, на "_", и тогда у вас получится :

extern string Pivot_Setting = "---------- Pivot Filter Setting";

extern bool Use_Pivot_Filter = false;

и вот это

if(Use_Pivot_Filter==true)

и тогда все будет компилироваться нормально

 

Привет всем,

Поскольку я пробую стратегию мартингейла, я попытался сделать так, чтобы "STOP AND REVERSE" работал только тогда, когда последняя сделка была выигрышной.

int histotal=OrdersHistoryTotal(); if (histotal>0)

{

for(int count=histotal-1;count>=0;count--)

{

if(OrderSelect(count,SELECT_BY_POS,MODE_HISTORY))

{

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)

{

if(OrderProfit()>0)

{

if(StopAndReverse==true && subTotalTrade()>0)

{

if((LastTrade=="BUY" && SellCondition==true) || (LastTrade=="SELL" && BuyCondition==true))

{

subCloseOrder();

if(subTotalTrade()>0) subCloseOrder();

if(subTotalTrade()>0) subCloseOrder();

if(IsTesting() && PrintControl==true) Print("STOP AND REVERSE !");

}

}

}

}

}

}

}

Однако кажется, что это не работает. Он останавливается и разворачивается, даже если последняя сделка была убыточной. Есть какие-нибудь предложения?

Спасибо!

 
BlackCoq:
Привет всем,

Поскольку я пробую стратегию мартингейла, я попытался сделать так, чтобы "STOP AND REVERSE" работал только тогда, когда последняя сделка была выигрышной.

Однако, похоже, это не работает. Она останавливается и разворачивается, даже если последняя сделка была убыточной. Есть какие-либо предложения?

Спасибо!

Вы не проверяете время исполнения ордера. Вы должны проверить время закрытия ордера, и ордер с наибольшим временем закрытия - это тот, который вы хотите проверить на прибыль.

 
mladen:
Вы не проверяете время закрытия ордера. Вы должны проверить время закрытия ордера, и ордер с наибольшим временем закрытия - это тот, который вы хотите проверить на прибыль.

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

//|---------martingale

int martingalefactor()

{

int histotal=OrdersHistoryTotal();

if (histotal>0)

{

for(int cnt=histotal-1;cnt>=0;cnt--)

{

if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))

{

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)

{

if(OrderProfit()<0)

{

lotfactor=lotsfactor*multiplier;

return(lotfactor);

}

else

{

lotfactor=initiallotsfactor;

if(lotsfactor<=0)

{

lotfactor=1;

}

return(lotsfactor);

}

}

}

}

}

return(lotfactor);

}

Поскольку это работает для мартингейла, не должно ли это работать и сейчас?