Вот код. Частичное закрытие в функции CheckForClose
//+------------------------------------------------------------------+//| Check for close position conditions |//+------------------------------------------------------------------+void CheckForClose(void)
{
MqlRates rt[2];
//--- go trading only for first ticks of new barif(CopyRates(_Symbol,_Period,0,2,rt)!=2)
{
Print("CopyRates of ",_Symbol," failed, no history");
return;
}
if(rt[1].tick_volume>1)
return;
//--- get current Moving Averagedouble ma[1];
if(CopyBuffer(ExtHandle,0,0,1,ma)!=1)
{
Print("CopyBuffer from iMA failed, no data");
return;
}
//--- positions already selected beforebool signal=false;
long type=PositionGetInteger(POSITION_TYPE);
if(type==(long)POSITION_TYPE_BUY && rt[0].open>ma[0] && rt[0].close<ma[0])
signal=true;
if(type==(long)POSITION_TYPE_SELL && rt[0].open<ma[0] && rt[0].close>ma[0])
signal=true;
//--- additional checkingif(signal)
{
if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) && Bars(_Symbol,_Period)>100)
ExtTrade.PositionClose(_Symbol,3);
}
//--- partial closedouble profit=PositionGetDouble(POSITION_PROFIT);
if(profit>InpPartial)
{
double volume=PositionGetDouble(POSITION_VOLUME);
/*
volume,in lot -> profit, in money
x,in lot -> InpPartial, in money
x=volume*InpPartial/profit;
*/double partial_volume=LotCheck(volume*InpPartial/profit);
if(partial_volume>0.0)
ExtTrade.PositionClosePartial(Symbol(),partial_volume,-1);
}//---
}
как альтернатива (и хэдж. система учета позиций) открывать несколько сделок по одному сигналу
Метод номера билета работает так же? Поскольку я пытаюсь в одной из моих логики, я не понимаю, почему я получаю разные результаты при
использовании метода PartialClose.
Вот этот? (MQL5\Experts\Examples\Moving Average\Moving Average.mq5)
Да, это поможет. Это будет образец для работы.
Да, это поможет. Это будет образец для работы.
Вот код. Частичное закрытие в функции CheckForClose
Вот код. Частичное закрытие в функции CheckForClose
Большое спасибо. Это поможет мне точно.
@Vladimir Karputov Пример очень хороший.
У меня есть запрос. Вы показали частичное закрытие с символом
Я хотел бы использовать его с номером билета.
Какая разница в использовании? Почему есть два разных метода и в чем разница между этими двумя методами?
У меня есть запрос. Если я хочу закрыть сделку частично и с прибылью, как я могу это сделать, используя MQL5?
как альтернатива (и хэдж. система учета позиций) открывать несколько сделок по одному сигналу
как альтернатива (и хэдж. система учета позиций) открывать несколько сделок по одному сигналу
Метод номера билета работает так же? Поскольку я пытаюсь в одной из моих логики, я не понимаю, почему я получаю разные результаты при использовании метода PartialClose.