Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В MT5 позиция может закрываться частично по TP/SL.
Например, позиция на 10 лотов закрывается так:
В MT5 позиция может закрываться частично по TP/SL.
Например, позиция на 10 лотов закрывается так:
Остальное - по стопаут :)
Точно! Забыл.
Ренат, это самый плохой вариант. Если в mql4 есть только ордер и его тикет по которому в истории можно найти всё что надо, то в mql5 есть ордер открывающий позицию, сделка открывающая позицию, сама позиция, ордер закрывающий и сделка закрывающая. Позиции в истории нет. Ни тикета её нет, ни цены, ни времени. И что даст изменение количества открытых позиций? Только головную боль и гемор…
хотя не, вот чуток листинга с моего некогда боевого эксперта, писанного на MQL-5 :
ArrayResize(Buys,0);
ArrayResize(Sells,0);
idxBuy=-1;
idxSell=-1;
for(i=OR-1; i>=0; i--)
{
tktOr=(int)PositionGetTicket(i);
if(PositionGetString(POSITION_SYMBOL)==_Symbol)
{
profitOr=PositionGetDouble(POSITION_PROFIT)+PositionGetDouble(POSITION_COMMISSION)+PositionGetDouble(POSITION_SWAP);
lotOr=NormalizeDouble(PositionGetDouble(POSITION_VOLUME),LS);
priceOr=NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),DGT);
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
{
idxSell=idxSell+1;
ArrayResize(Sells,idxSell+1);
Sells[idxSell,0]=lotOr;
Sells[idxSell,1]=priceOr;
Sells[idxSell,2]=tktOr;
Sells[idxSell,3]=profitOr;
}
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
{
idxBuy=idxBuy+1;
ArrayResize(Buys,idxBuy+1);
Buys[idxBuy,0]=lotOr;
Buys[idxBuy,1]=priceOr;
Buys[idxBuy,2]=tktOr;
Buys[idxBuy,3]=profitOr;
}
}
}
lenBuys=ArraySize(Buys)/4;
if(lenBuys>0)ArraySort(Buys);
lenSells=ArraySize(Sells)/4;
if(lenSells>0)ArraySort(Sells);
for (iSell=0; iSell<=lenSells-1; iSell++)
{
for(iBuy=0; iBuy<=lenBuys-1; iBuy++)
{
Вот и сравнивай то что было и то что есть
История не нужна
;)
хотя не, вот чуток листинга с моего некогда боевого эксперта, писанного на MQL-5 :
И в какой строке определяется что позиция закрылась по ТР?
И в какой строке определяется что позиция закрылась по ТР?
здесь просто принцип - как знать что было до того, и как запинать в массив все необходимые данные
надеюсь остальное дописать не составит труда
здесь просто принцип - как знать что было до того, и как запинать в массив все необходимые данные
надеюсь остальное дописать не составит труда
Вот именно в этом и есть трудность.
Когда позиция закрылась, её в истории нет, есть только ордера и сделки. Для того чтобы определить. что позиция закрылась по тейку, надо выбрать все сделки относящиеся к этой позиции, определить, что именно эта сделка является закрывающей и только потом определить как она закрыта. Вот и весь гемор. А в функции OnTradeTransaction() сделка уже вот она… Только проверить и определить.
Вот именно в этом и есть трудность.
Когда позиция закрылась, её в истории нет, есть только ордера и сделки. Для того чтобы определить. что позиция закрылась по тейку, надо выбрать все сделки относящиеся к этой позиции, определить, что именно эта сделка является закрывающей и только потом определить как она закрыта. Вот и весь гемор. А в функции OnTradeTransaction() сделка уже вот она… Только проверить и определить.
я ведь сказал уже выше
история не нужна, мы ее для себя сделали самостоятельно и как нам надо
и привел пример - как это сделать
не стало позиции с тейк-профитом таким то в массиве по отношению к открытым, вот и все
в чем трудность то?, не понимаю
я ведь сказал уже выше
история не нужна, мы ее для себя сделали самостоятельно и как нам надо
и привел пример - как это сделать
не стало позиции с тейк-профитом таким то в массиве по отношению к открытым, вот и все
в чем трудность то?, не понимаю
Позиция закрылась по стопу «не стало позиции с тейк-профитом таким то в массиве» И что? А надо определить, что позиция закрылась именно по тейку… И никак иначе, не советником или скриптом закрыта, не руками не по стоп-ауту, а именно по тейку.
Позиция закрылась по стопу «не стало позиции с тейк-профитом таким то в массиве» И что? А надо определить, что позиция закрылась именно по тейку… И никак иначе, не советником или скриптом закрыта, не руками не по стоп-ауту, а именно по тейку.
да вроде нет :-) (я сам давно еще на это внимание обратил) он сам выборку делает через
DEAL_REASON_TР
, что по ТР закрылась...
"Добрый вечер. Как отследить событие закрытия рыночной позиции по тейку? Только не просто сработка тейка, а уточнение какой тип позиции закрылся (покупка или продажа).
Я пользуюсь своими классами для написания кода. В общем, прилагаю метод из своего класса, чтобы пояснить что у меня написано: