Como codificar? - página 175

 

Seu sistema parece um pouco louco......

extern double Lots=0.1;

extern int TP=50;

extern int SL=50;

extern int timeframe=1;

extern bool close=false;

extern int Slippage=2;

extern int Magic=46151;

int init()

{

return(0);

}

int deinit()

{

return(0);

}

datetime LastTradeTime = 0;

int start()

{

int time=60*timeframe;

if(LocalTime()-LastTradeTime > time) {

if(close==true) {

if(OrdersTotal()!=0) {

for(int i = 0;i < OrdersTotal();i++){

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderType()==OP_SELL && OrderMagicNumber()==Magic) { OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage, Green ); }

if(OrderType()==OP_BUY && OrderMagicNumber()==Magic) { OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), Slippage, Red ); }

} } }

OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, Ask - SL * Point, Ask + TP * Point, NULL, Magic, 0, Green);

OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, Bid + SL * Point, Bid - TP * Point, NULL, Magic, 0, Red);

LastTradeTime = LocalTime(); }

return(0);

}

Se "fechar" for verdade, ele fechará as ordens abertas no final do prazo (neste caso 1 minuto). SL/TP=100 significa 10pips em um corretor de 5 dígitos.

A propósito, não tenho certeza se abrirá as duas ordens imediatamente.

É possível fechar e abrir (ou abrir 2 posições) ao mesmo tempo?

Isto funciona bem nos backtests, é claro, mas não sei se funciona em uma conta demo/live.

 

eu NUNCA pude fazer com que isso funcionasse com qualquer corretor...

adicionei atrasos e código de confirmação para verificar se as ordens foram fechadas e abertas, se não tentar novamente.

mesmo assim, ainda não funcionando corretamente de forma consistente

 

Isto parece ser um problema para muitas estratégias. Há alguém que tenha encontrado uma solução para este problema?

 

problema de trailing stop

Eu tenho pares de ienes que quando eu tento usar minha parada de trilha; mover meu preço para "zero" depois de entrar em lucro. Alguém pode me dizer por que isso ocorre e como consertar? O pedido de trilha funciona bem em moedas de 5 dígitos.

ordem de trilha nula(tipo int)

{

if(TrailingStop>0)

{

if(OrderMagicNumber() == MagicNumber)

{

if(type===OP_BUY)

{

if(Bid-OrderOpenPrice()>Point*TrailingStop)

{

if(OrderStopLoss()<Bid-Point*TrailingStop)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(Point*TrailingStop),OrderTakeProfit(),0,Green);

}

}

}

if(type===OP_SELL)

{

if((OrderOpenPrice()-Ask)>(Point*TrailingStop))

{

if((OrderStopLoss()>(Ask+Point*TrailingStop)) ||| (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(Point*TrailingStop),OrderTakeProfit(),0,Red);

}

}

}

}

}

}

 
ajk:
Eu tenho pares de ienes que quando eu tento usar meu trailing stop; mova meu preço para "zero" depois de entrar no lucro. Alguém pode me dizer por que isso ocorre e como consertar? A ordem de rastreamento funciona bem em moedas de 5 dígitos.

Eu acho (é apenas minha opinião) que é porque você tem uma função e esta função não sabe nada sobre OrderOpenPrice(), OrderStopLoss() etc. É melhor você colocar este código dentro do laço.

 
ajk:
Eu tenho pares de ienes que quando eu tento usar minha parada de trilha; mover meu preço para "zero" depois de entrar em lucro. Alguém pode me dizer por que isso ocorre e como consertar? O pedido de trilha funciona bem em moedas de 5 dígitos.

Possivelmente um uso diligente do NormalizeDouble(...) faria a diferença?

 

como codificar dois indicadores cruzados com escalas diferentes

como codificar dois indicadores cruzados com escalas diferentes?

eu quero ajuda

 

Vou dar uma chance a qualquer coisa. É estranho porque o guru codificador codificou a ea e eu modifiquei. Procurei em toneladas de e-A e não consegui encontrar nada.

 

qualquer sugestão sobre como escrever o código após o

TrailOrder(tipo int) vazio

função de chamada?

Talvez tirar a função por completo e usar a função e...argh>!

 
ajk:
qualquer sugestão sobre como escrever o código após o

TrailOrder(tipo int) vazio

função de chamada?

Talvez tirar a função completamente e usar o e...argh>!

Se você quiser, eu posso consertar sua EA. Envie-me no PM.

Razão: