Ao testar qualquer par, tudo funciona corretamente, mas ao trabalhar com outras moedas, as ordens pendentes não são colocadas (tenho que expor a ordem pendente) e não são fechadas depois de ter sido feito o disparo do lucro.
Favor aconselhar como alterar o código, se possível:
bool operation=0;for(int pos=0;pos<OrdersTotal();pos++)
{if ( OrderSelect (pos, SELECT_BY_POS) == false ) continue;
if ( OrderSymbol()==Symbol()) break;}
//=========================================================================================================if(Hour()>=2&&Hour()<=18&&operation==0){
if(OPB1==1)
{operation=1;if(operation==0 &&OrderSymbol()!=Symbol()||OrdersTotal()==0)
{OrderSend(Symbol(),OP_BUY,lots,Ask,0,Bid-ss*Point,Ask+T*Point,"My order#",mn,0,Green);}}
if (OrderType()==OP_BUY &&OrdersTotal()==1&&OrderMagicNumber()==8)
{OrderSend(Symbol(),OP_SELLSTOP,5*lots,OrderOpenPrice()-(ss-ss/4)*Point,0,0,SstopClose,"My order#",80,0,Red);}
if(OPS1==1)
{operation=1;if(operation==0 &&OrderSymbol()!=Symbol()||OrdersTotal()==0)
{OrderSend(Symbol(),OP_SELL,lots,Bid,0,Ask+ss*Point,Bid-T*Point,"My order#",mn,0,Red);}}
if (OrderType()==OP_SELL &&OrdersTotal()==1&&OrderMagicNumber()==8)
{OrderSend(Symbol(),OP_BUYSTOP,5*lots,OrderOpenPrice()+(ss-ss/4)*Point,0,0,BstopClose,"My order#",80,0,Green);}}
if(OrderMagicNumber()==80){operation=0;
{for( int ii=OrdersTotal()-1;ii>=0;ii--)
{OrderSelect(ii, SELECT_BY_POS);
int type = OrderType();bool result = false;
switch(type)
{case OP_BUYSTOP : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red );//break;case OP_SELLSTOP : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); //break;
result = OrderDelete( OrderTicket() );//break;
}}}}
remover as condições "se (OrderTotal()==0)....". - eles estão apenas dizendo: procurar por entradas e abrir novas ordens somente quando não há nenhuma ordem.
Se você quiser evitar abrir um grande pacote de novos pedidos sem tal condição, você deve fornecer condições adicionais. Isto depende de sua estratégia: não abrir uma nova no tempo T da anterior, ou controlar barras ou manter distâncias em pips entre pedidos.
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
Если значение pos меньше длины строки и значение символьного кода = 0, то строка усекается (но размер буфера, распределенного под строку остается неизменным). Длина строки становится равной значению pos.
Em um Expert Advisor com várias moedas, preciso fechar um pedido pendente contra um lucro quando uma posição aberta é acionada.
Agora mesmo, quando eu fecho uma ordem pendente com lucro, todas as ordens pendentes para todas as moedas são fechadas.
Como posso alterar o código para que somente a ordem pendente relacionada a um par de moedas seja fechada e o resto das ordens pendentes permaneçam abertas?
O que devo mudar neste código?
if(OrderMagicNumber()==Mn){operation=0;
{for( int i=OrdersTotal()-1;i>=0;i--)
{OrderSelect(i, SELECT_BY_POS);
int type = OrderType();bool result = false;
switch(type)
{case OP_BUYSTOP : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red );//break;case OP_SELLSTOP : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); //break;
result = OrderDelete( OrderTicket() );//break;
}}}}
Mn neste código é um número mágico de uma ordem pendente BUY_STOP ou SELL_STOP.
A lógica é que quando uma posição aberta é fechada no Take Profit, este número mágico é deixado e o comando para apagá-lo é suposto ser executado.
Isto funciona ao testar cada par. Entretanto, quando se trabalha com outras moedas, todos os pedidos feitos em todos os pares são excluídos.
Ajude, por favor, quem é capaz de fazer isso.
Entendo que ninguém tem que se preocupar com este problema, mas talvez alguém tenha um modelo pronto?
Boa tarde,
Você pode me dizer como posso administrar uma EAem vps sem re-sincronização?
Quero dizer: no terminal eu posso colocar botões na tabela e mudar o modo sem re-sincronizar. Posso usar o bot para dar comandos à EA no PPC ?
Ou devo usar outra alternativa para mudar o modo EA no mql vps sem re-sync?
Obrigado pela resposta!
Olá, caros especialistas!
Por favor, ajude-me a resolver este problema.
Ao testar qualquer par, tudo funciona corretamente, mas ao trabalhar com outras moedas, as ordens pendentes não são colocadas (tenho que expor a ordem pendente) e não são fechadas depois de ter sido feito o disparo do lucro.
Favor aconselhar como alterar o código, se possível:
Boa tarde Prezados usuários do fórum.
Por favor, ajude-me a melhorar o indicador que constrói as zonas no gráfico.
No indicador atual, as zonas são definidas para todos os dias da semana.
Preciso ser capaz de definir zonas para cada dia da semana separadamente.
remover as condições "se (OrderTotal()==0)....". - eles estão apenas dizendo: procurar por entradas e abrir novas ordens somente quando não há nenhuma ordem.
Se você quiser evitar abrir um grande pacote de novos pedidos sem tal condição, você deve fornecer condições adicionais. Isto depende de sua estratégia: não abrir uma nova no tempo T da anterior, ou controlar barras ou manter distâncias em pips entre pedidos.
Entendi, obrigado)
Rapazes, especialmente os desenvolvedores, vocês podem me dizer se é possível resolver este problema? A tarefa na foto
Boa tarde, o aviso"possível perda de dados devido à conversão do tipo" aparece na variável n no local destacado
Você pode me dizer como corrigi-lo?
Boa tarde, o aviso"possível perda de dados devido à conversão do tipo" aparece na variável n no local destacado
Você pode me dizer como corrigi-lo?
Ou ushort n=0;
Ou StringSetChar(s, i, (ushort)n);
Mas é melhor usar o StringSetCharacter().
Como é feito para os temas.
Boa tarde.
Em um Expert Advisor com várias moedas, preciso fechar um pedido pendente contra um lucro quando uma posição aberta é acionada.
Agora mesmo, quando eu fecho uma ordem pendente com lucro, todas as ordens pendentes para todas as moedas são fechadas.
Como posso alterar o código para que somente a ordem pendente relacionada a um par de moedas seja fechada e o resto das ordens pendentes permaneçam abertas?
O que devo mudar neste código?
Mn neste código é um número mágico de uma ordem pendente BUY_STOP ou SELL_STOP.
A lógica é que quando uma posição aberta é fechada no Take Profit, este número mágico é deixado e o comando para apagá-lo é suposto ser executado.
Isto funciona ao testar cada par. Entretanto, quando se trabalha com outras moedas, todos os pedidos feitos em todos os pares são excluídos.
Ajude, por favor, quem é capaz de fazer isso.
Entendo que ninguém tem que se preocupar com este problema, mas talvez alguém tenha um modelo pronto?
Eu ficaria muito grato.