Tenimagalon: Vejo que estamos tendo uma discussão real. Alex, você também está envolvido nisso:) Bem, Sr. programadores, vocês têm um consenso? Olhe, a função principal é fechar ordens do mesmo tipo com base no lucro total. 4 posições são abertas, 2 delas em EURUSD (compra e venda) e 2 de USDCHF (compra e venda).Se as ordens de compra tiverem lucro, ela as fecha, deixa a ordem de venda em paz ou deixa a ordem de venda em paz.
Apanhe
double MyProfit=1000; // уровень профита//+--------------------------------------------------------------------------------------------------------------------+//| Expert tick function |//+--------------------------------------------------------------------------------------------------------------------+voidOnTick()
{
//---if(Open_Pr("",0)>MyProfit)DelOrders("",0); // закрываем покупкиif(Open_Pr("",1)>MyProfit)DelOrders("",1); // закрываем продажи//---
}
//+--------------------------------------------------------------------------------------------------------------------+//| Суммарный профит в валюте депозита открытых позиций |//| or_ty=0 - ордера типа BUY |//| or_ty=1 - ордера типа SELL |//+--------------------------------------------------------------------------------------------------------------------+double Open_Pr(string sy="", int or_ty=0)
{ double p = 0;
if (sy == "0") sy = Symbol();
for(int pos=OrdersTotal()-1;pos>=0;pos--)
{
if(OrderSelect(pos,SELECT_BY_POS)==true)
{
if(OrderSymbol() == sy || sy == "")
{
if(OrderType()==or_ty) {p+=OrderProfit()+OrderSwap()+OrderCommission();}
}
}
}
return(p);
}
//+--------------------------------------------------------------------------------------------------------------------+//| Функция удаления и закрытия ордеров |//| or_ty=0 - ордера типа BUY |//| or_ty=1 - ордера типа SELL |//+--------------------------------------------------------------------------------------------------------------------+void DelOrders(string sy="", int or_ty=0)
{
while(true)
{
bool find_order=false;
//----if (sy == "0") sy = Symbol();
for(int pos=OrdersTotal()-1;pos>=0;pos--)
if(OrderSelect(pos,SELECT_BY_POS)==true)
if(OrderSymbol() == sy || sy == "")
{
find_order=true;
//----if(OrderType()==or_ty)
{
RefreshRates(); int slip=(int)(((Ask-Bid)/Point)*2);
if(OrderClose(OrderTicket(),OrderLots(),Bid,slip,clrBlue)==false){}
}
//----if(OrderType()==or_ty)
{
RefreshRates(); slip=(int)(((Ask-Bid)/Point)*2);
if(OrderClose(OrderTicket(),OrderLots(),Ask,slip,clrRed)==false){}
}
Alert("Все ордера закрыты!");
}
if(find_order==false) Alert("Нет ордеров!");break;
}
}
//+--------------------------------------------------------------------------------------------------------------------+
Tenimagalon: Vejo que estamos tendo uma discussão real. Alex, você está envolvido :)) Bem, senhores programadores, vocês têm um consenso? O problema é fechar pedidos do mesmo tipo para um lucro total. 4 posições estão abertas, 2 de EURUSD (compra e venda) e 2 de USDCHF (compra e venda).Se as ordens de compra tiverem lucro, ela as fecha, deixa a ordem de venda em paz ou deixa a ordem de venda em paz.
Se você tiver 3 posições abertas em pares diferentes, ou seja, 2 Bai e uma sentada, então sim, neste caso o robô fechará os pares quando o lucro total for alcançado. Se você tentar abrir 4 posições em 2 pares, nunca obterá o lucro total neste caso, o especialista fecha os pares de pedidos, seja comprando ou vendendo. Mas ele fecha a compra de EURUSD e compra USDCHF ou qualquer outro par selecionado.
Tenimagalon: Se você tiver 3 posições abertas em pares diferentes, ou seja, 2 Bai e uma Sell, então sim, neste caso o robô fechará as posições quando o lucro total for alcançado. Se você tentar abrir 4 posições em 2 pares, nunca obterá o lucro total neste caso, o especialista fecha os pares de pedidos, seja comprando ou vendendo. Mas ele fecha a compra de EURUSD e compra USDCHF ou qualquer outro par selecionado.
Taras :) Você deve abrir 4 posições uma por uma em EUR, uma por uma em CHF, depois mais duas, uma venda em EUR, uma venda em CHF. E veja quando comprar e vender atingir o lucro comum o bot fechará as duas ou não. E em suas telas eu vejo ordens para um instrumento que não deveria ser a priori.
Tenimagalon: Taras :) Você deve abrir 4 posições em uma etapa. 1 longo em EUR, 1 longo em CHF, depois mais duas, uma venda em EUR, uma venda em CHF. E olhe quando comprar e comprar atingir o lucro total o bot fechará as duas ou não. E em suas capturas de tela vejo ordens para um instrumento, que não deve ser a priori.
agrupar pares por compra ou venda é errado
Por exemplo, em um par (comprar) poderia haver uma compra do dólar e em outro par (vender) poderia haver uma venda do dólar.
Vejo que estamos tendo uma discussão real. Alex, você também está envolvido nisso:) Bem, Sr. programadores, vocês têm um consenso? Olhe, a função principal é fechar ordens do mesmo tipo com base no lucro total. 4 posições são abertas, 2 delas em EURUSD (compra e venda) e 2 de USDCHF (compra e venda).Se as ordens de compra tiverem lucro, ela as fecha, deixa a ordem de venda em paz ou deixa a ordem de venda em paz.
Apanhe
Vejo que estamos tendo uma discussão real. Alex, você está envolvido :)) Bem, senhores programadores, vocês têm um consenso? O problema é fechar pedidos do mesmo tipo para um lucro total. 4 posições estão abertas, 2 de EURUSD (compra e venda) e 2 de USDCHF (compra e venda).Se as ordens de compra tiverem lucro, ela as fecha, deixa a ordem de venda em paz ou deixa a ordem de venda em paz.
como esta? :)
Apanhe
como esta? :)
como esta? :)
Se você tiver 3 posições abertas em pares diferentes, ou seja, 2 Bai e uma Sell, então sim, neste caso o robô fechará as posições quando o lucro total for alcançado. Se você tentar abrir 4 posições em 2 pares, nunca obterá o lucro total neste caso, o especialista fecha os pares de pedidos, seja comprando ou vendendo. Mas ele fecha a compra de EURUSD e compra USDCHF ou qualquer outro par selecionado.
aqui há muitas baías e eus)
Você mesmo fez a caixa de diálogo ou a SB?
Existem painéis?
ps., a menos que haja objetos se você fizer
Existem painéis?
Sim, é por isso que eu estou perguntando.
Se você mesmo fez isso, por favor, compartilhe o código (colapso, expansão, mudança)
aqui há muitas baías e eus)
Taras :) Você deve abrir 4 posições em uma etapa. 1 longo em EUR, 1 longo em CHF, depois mais duas, uma venda em EUR, uma venda em CHF. E olhe quando comprar e comprar atingir o lucro total o bot fechará as duas ou não. E em suas capturas de tela vejo ordens para um instrumento, que não deve ser a priori.
agrupar pares por compra ou venda é errado
Por exemplo, em um par (comprar) poderia haver uma compra do dólar e em outro par (vender) poderia haver uma venda do dólar.