Como codificar? - página 166

 

obrigado por sua resposta.

Mas isto não está funcionando se houve um deslizamento quando a posição foi fechada, certo?

 
codersview:
Olá a todos,

Tive um problema com a EA do RSI e MA.

Tenho o indicador funcionando corretamente... Tudo que quero é convertê-lo em EA...

Eu tentei algumas coisas. IndicatorCounted() não está funcionando na EA, então tentei codificar os valores do for loop (bar=0; bar<15; bar++), eu estava obtendo o RSI correto, mas SMA não está dando valores coretos...

Estou anexando o código para SMA cruzando o RSI...

Então, alguém poderia me ajudar a converter este Indicador em EA.

***************************************************************************************************************************************

#janela_indicadora de propriedade_separarate_window

#property indicator_buffers 2

#indicador de propriedade_color1 LawnGreen

#Indicador de propriedade_color2 DarkBlue

duplo ExtMapBuffer1[];

duplo ExtMapBuffer2[];

int init()

{

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);

SetIndexBuffer(1,ExtMapBuffer2);

return(0);

}

int deinit()

{

retorno(0);

}

int start()

{

int bar, limite;

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

limit=Bars-IndicatorCounted();

for(bar=0; bar<limit; bar++)

ExtMapBuffer1 = iRSI(NULL,0,14,PRICE_TYPICAL,bar);

for(bar=0; bar<limit; bar++)

ExtMapBuffer2=iMAOnArray(ExtMapBuffer1,Bars,14,0,MODE_SMA,bar);

return(0);

}

***************************************************************************************************************************************

Obrigado & Cumprimentos,

Ganesh

Ganesh,

Tente fazer as barras em ordem cronológica.

Em vez de for(bar=0; bar<limite; bar++)

Utilização para(bar=limit-1; bar>=0; bar--)

Chazzmoney

 

Hi

Obrigado pela resposta rápida... Eu tentei, mas não faz nenhuma diferença...

Que também se usarmos Barras no laço, ele tem que calcular valores inteiros (para todas as barras) para cada uma e para cada carrapato... e pode haver atraso... Também o valor de SMA seria zero.

No Indicador estaríamos calculando RSI e EMA somente para a nova barra usando o IndicatorCounted(), mas não podemos usá-lo no EA...

O ponto exato do problema é o 2º para loop e os valores para o iMAOnArray...

O primeiro para loop funciona perfeitamente mesmo quando o codificamos em código duro...

 
jan100:
obrigado por sua resposta.mas isto não está funcionando se houve deslizamento quando a posição foi fechada, certo?

Alguns corretores escrevem [sl] e [tp] no campo de comentários. Você pode usá-lo também.

 

Obrigado. Vou tentar isso.

como é possível selecionar a última ordem fechada com o número mágico certo?

 
jan100:
Obrigado. Vou tentar isso. como é possível selecionar a última ordem fechada com o número mágico certo?

Se você o encontrar na lista do histórico, esta é uma ordem fechada, se na lista total - aberta ainda.

 

Pedido de código Ea: Fechar pedido anterior ao abrir nova posição

Olá, gostaria de fazer um pedido de código para quando a nova posição estiver aberta, automaticamente o pedido anterior será fechado.

Exemplo:

Quando a ordem de compra é aberta, a ordem de venda anterior será fechada.

Quando a venda do pedido está aberta, a compra do pedido anterior será fechada

encontrei o código OrderCloseBy() mas não sei exatamente onde colocar este código

obrigado

 
darkkiller:
Olá, gostaria de fazer um pedido de código para quando a nova posição estiver aberta, automaticamente o pedido anterior será fechado.

Exemplo:

Quando a compra do pedido está aberta, a venda do pedido anterior fechará

Quando a venda do pedido está aberta, a compra do pedido anterior será fechada

encontrei o código OrderCloseBy() mas não sei exatamente onde colocar este código

obrigado

Solução de problemas

colocar após o pedidoCARREGAR COMPRAR

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // posição fechada

}

colocar após o pedidoEnviar VENDA

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // posição fechada

}

Outro código que recebo da ForexFactory graças a(Fulltime247,magnumfreak)

externo int MAGICTerminal=101;

dobro do tamanho externo LOTSize=0,10;

texto de comentário do pedido = "Order Comment Text";

//TOTAL Contagem...

int btotal=0; int stotal=0; int ticket=0; double closelots=0; bool xbool;

for( int cnt=OrdensTotal()-1;cnt>=0;cnt--)

{

xbool=OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderMagicNumber()==MAGICTerminal && OrderSymbol()==Symbol()){btotal++; ticket=OrderTicket(); closelots=OrderLots();}

if(OrderType()==OP_SELLL && OrderMagicNumber()==MAGICTerminal && OrderSymbol()==Symbol()){stotal++; ticket=OrderTicket(); closelots=OrderLots();}

}// Contagem TOTAL FIM...

if(O QUE SUA CONDIÇÃO PARA UMA COMPRA)

{

if(btotal>0){OrderClose(ticket,closelots,Bid,3,CLR_NONE);}

ticket=OrderSend(Symbol(),OP_BUY,LOTSize,Ask,3,0,0,ORDERComment,MAGICTerminal,0,Magenta);

}

se(QUANDO SUA CONDIÇÃO PARA UMA VENDA)

{

if(stotal>0){OrderClose(ticket,closelots,Ask,3,CLR_NONE);}

ticket=OrderSend(Symbol(),OP_SELLL,LOTSize,Bid,3,0,0,ORDERComment,MAGICTerminal,0,Lime);

}
 
 

Eu sou novo no MT4.

Quero calcular o número de barras após o shortMA ter atravessado o longMA, alguém sabe como codificar esta função?

Obrigado de antemão!

Razão: