Escreverei um assessor mql4 gratuito - página 7

 
Olá, tenho uma idéia, posso lhe dizer aqui ou pessoalmente, me dizer como você gosta.
 
Olá, você pode me ajudar a refinar minha EA?
 
Andrey Luxe:

Para ganhar experiência nesta área, vou escrever 25 EAs gratuitamente para suas idéias e estratégias interessantes

Restam apenas 19 EAs

Tenho tal problema, já tenho um EA e funciona bem, o problema é com o bloco de parada de rastreamento. Não funciona por alguma razão e não será aberto quando comercializado. Aqui está a própria EA. Talvez você tenha alguma idéia do que há de errado com o trailing stop? Não tenho idéia do que fazer sem ele.

Ishimoku - MACD.mq4 |

//| PARA |

//| http://www.forex-tradexperts-to.narod.ru |

//+------------------------------------------------------------------+

#propriedade copyright "TO

#link da propriedade "http://www.forex-tradexperts-to.narod.ru"

#Incluir <WinUser32.mqh>


parâmetros de corda externa=" Ichimoku";

tenkan_sen_sen=3 externo interno;

kijun_sen_sen=48 externo interno;

senkou_span_b=52;

parâmetros de cadeia externa="Média móvel";

período int maPeríodo=4;

método externo int ma_method=1;

preço_aplicado_aplicado_externo=3;

parâmetro de corda externa=" MACD";

externo int FastEMA=22;

externo int SlowEMA=52;

sinal externo intalEMA=9;

parâmetro de corda externa=" EA";

externo int TP=200;

externo int SL=500;

escorregamento interno externo=3;

lote duplo externo=0,1;

bool externo Add1/*(TENKANSEN resp. KIJUNSEN)*/ = verdadeiro;

bool externo Add2/*(TENKANSEN revisado Ma)*/=verdadeiro;

fervura externa=verdadeiro;

duplo trilho externoStop=200;

zashita int exterior=1;


bool buy1=falso,buy2=falso,buy3=falso,buy4=falso;

bool sell1=falso,sell2=falso,sell3=falso,sell4=falso,sell22=falso; buy22=falso;

int ticket=0;

int i;

datetime t1=0,t2=1,t3=1,t4=1,t5=1,t7=1,t8=1;

int init()

{

retorno(0);

}

int deinit()

{

retorno(0);

}


int start()

{

t1=Tempo[0];


duplo MACDRED1=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,1);

duplo MACDRED2=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,2);

duplo MACDBLUE1=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_SIGNAL,1);

duplo MACDBLUE2=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_SIGNAL,2);

double IshRed1=iIchimoku(NULL,0,tenkan_sen,kijun_sen,senkou_span_b,MODE_TENKANSEN,1);

double IshRed2=iIchimoku(NULL,0,tenkan_sen,kijun_sen,senkou_span_b,MODE_TENKANSEN,2);

duplo IshBlue1=iIchimoku(NULL,0,tenkan_sen,kijun_sen,senkou_span_b,MODE_KIJUNSEN,1);

double IshBlue2=iIchimoku(NULL,0,tenkan_sen,kijun_sen,senkou_span_b,MODE_KIJUNSEN,2);

duplo MA1=iMA(NULL,0,maPeriodo,0,ma_método,aplicado_preço,1);

duplo MA2=iMA(NULL,0,MaPeriod,0,ma_method,applied_price,2);

if(MACDRED1>MACDBLUE1 && MACDRED2<MACDBLUE2 && t3!=t1)

{ // MACD BUY signal

buy1=true;sell1=false;t3=Time[0];

}

if(MACDRED1<MACDBLUE1 && MACDRED2>MACDBLUE2 && t3!=t1)

{ // MACD SELL signal

sell1=true;buy1=false;t3=Time[0];

}

if(IshRed1>MA1 && IshRed2<=MA2 && t4!=t1)

{ // O sinal Ishimoku atravessa o MA em BUY

buy2=true;sell2=false;t4=Time[0];

}

if(IshRed1<MA1 && IshRed2>=MA2 && t4!=t1)

{ // O sinal Ishimoku cruza MA na SELL

sell2=true;buy2=false;t4=Time[0];

}

if(IshRed1>IshBlue1 && IshRed2<IshBlue2 && t5!=t1)

{ // Sinal Ishimoku Cruzes rápidas Lento para comprar

buy3=true;sell3=false;t5=Time[0];

}

if(IshRed1<IshBlue1 && IshRed2>IshBlue2 && t5!=t1)

{ // Sinal na Ishimoku Cruzes rápidas Lento na SELL

sell3=true;buy3=false;t5=Time[0];

}

if(Add1===verdadeiro && buy3===verdadeiro && buy4===verdadeiro && t1!=t8)

{ //abrir adições

PlaySound("Alert.wav");

int=MessageBox("Adicionar um pedido para Comprar?",MB_YESNO|MB_ICONQUESTION);

if(ret===6){ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,slippage,Bid-SL*Point,Ask+TP*Point,NULL,0,0,Blue);if(ticket>0)PlaySound("ok.wav");if(ticket<0)Alerta("Order not set!!! error - "+GetLastError()+"set manually");}

t8=Time[0];buy3=false;buy4=false;

}

if(Add1===verdadeiro && sell3===verdadeiro && sell4===verdadeiro && t1!=t7)

{ //abrir adições

PlaySound("Alert.wav");

int ret2=MessageBox("Adicionar um pedido de venda?",MB_YESNO|MB_ICONQUESTION);

if(ret2==6){ticket=OrderSend(Symbol(),OP_SELL,lot,Bid,slippage,Ask-SL*Point,Bid+TP*Point,NULL,0,0,Red);if(ticket>0)PlaySound("ok.wav");if(ticket<0)Alerta("Order not set!!! error - "+GetLastError()+"set manually");}

t7=Time[0];sell3=false;sell4=false;

}

for(i=OrdensTotal()-1;i>=0;i--)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderType()==OP_BUY)

{

buy1=falso;buy2=falso;buy22=verdadeiro;

pausa;

}

}

if(Add2===verdadeiro && compra22 && IshRed1>MA1 && IshRed2<=MA2 && t4!=t1)

{ // Adicionado por Ma e Tenkan_sen para Comprar

PlaySound("Alert.wav");

int ret3=MessageBox("Adicionar um pedido para Comprar?",MB_YESNO|MB_ICONQUESTION);

if(ret3==6){ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,slippage,Bid-SL*Point,Ask+TP*Point,NULL,0,0,Blue);if(ticket>0)PlaySound("ok.wav");if(ticket<0)Alerta("Order not set!!! error - "+GetLastError()+"set manually");}

t4=Time[0];buy22=false;

}

if(Add2===true && sell22 && IshRed1<MA1 && IshRed2>=MA2 && t4!=t1)

{ // Adicionado por Ma e Tenkan_Sen na Sell

PlaySound("Alert.wav");

int ret4=MessageBox("Adicionar um pedido para vender?",MB_YESNO|MB_ICONQUESTION);

if(ret4==6){ticket=OrderSend(Symbol(),OP_SELL,lot,Bid,slippage,Ask-SL*Point,Bid+TP*Point,NULL,0,0,Red);if(ticket>0)PlaySound("ok.wav");if(ticket<0)Alerta("Order not set!!! error - "+GetLastError()+"set manually");}

t4=Time[0];sell22=false;

}

if(buy1===verdadeiro && buy2===verdadeiro && t1!=t2)

{ // ordens iniciais abertas

for(i=OrdensTotal()-1;i>=0;i--)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Gold);

}

PlaySound("Alert.wav");

ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,slippage,Bid-SL*Point,Ask+TP*Point,NULL,0,0,Blue);

if(ticket>0)PlaySound("ok.wav");

if(ticket<0)Alert("Order not set!!! error - "+GetLastError()+"set manually");

t2=Time[0];buy1=false;buy2=false;buy4=verdadeiro;

}

for(i=OrdensTotal()-1;i>=0;i--)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderType()==OP_SELL)

{

sell1=false;sell2=false;sell22=verdadeiro;

pausa;

}

}

if(sell1===verdadeiro && sell2===verdadeiro && t1!=t2)

{ // ordens iniciais abertas

for(i=OrdensTotal()-1;i>=0;i--)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Gold);

}

PlaySound("Alert.wav");

ticket=OrderSend(Symbol(),OP_SELL,lot,Bid,slippage,Ask+SL*Point,Bid-TP*Point,NULL,0,0,Red);

if(ticket>0)PlaySound("ok.wav");

if(ticket<0)Alert("Order not set!!! error - "+GetLastError()+"set manually");

t2=Time[0];sell1=false;sell2=false;sell4=true;buy22=false;

}

// Parada de trilha

duplo SL,TP,preço aberto,lucro;

int ticketOrder,zamok,tipo;

comunicação por cordas;

for(i=OrdensTotal();i>=0;i--)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(trailing===true && OrderProfit()/MarketInfo(Symbol(),MODE_TICKVALUE)>0 && MathFloor(OrderProfit()/MarketInfo(Symbol(),MODE_TICKVALUE)/trailingStop)!=0 && (OrderProfit()/MarketInfo(Symbol(),MODE_TICKVALUE))>=trailingStop*MathFloor(OrderProfit()/MarketInfo(Symbol(),MODE_TICKVALUE)/trailingStop))

{

if(OrderType()==0){SL=Bid-trailingStop*Point;if(SL===OrderOpenPrice())SL+=zashita*Point;}

if(OrderType()===1){SL=Ask+trailingStop*Point;if(SL===OrderOpenPrice())SL-=zashita*Point;}

TP=OrderTakeProfit();

if(OrderType()==0)if(SL>=OrderStopLoss()+trailingStop*Point)OrderModify(OrderTicket(),OrderOpenPrice(),SL,TP,0);

if(OrderType()==1)if(SL<=OrderStopLoss()-trailingStop*Point)OrderModify(OrderTicket(),OrderOpenPrice(),SL,TP,0);

}

}

retorno(0);

}

 

Não vou responder a todas elas, mas é definitivamente um bug:

for(i=OrdersTotal();i>=0;i--)

A última ordem é OrderTotal()-1.

 
Olá, você pode me ajudar com uma EA pronta em Ishimoku e MASD. A EA funciona, mas por alguma razão não pára quando as condições ocorrem. Não sou familiarizado com a MQL4, portanto não tenho certeza do que mudar nela. Muito provavelmente há um erro no bloqueio de parada de rastreio. Agradecemos antecipadamente. Sem esta função, é uma desvantagem significativa para o comércio.
Arquivos anexados:
 

você pode escrever/escrever um multi EA de graça?

O boneco está disponível.

 

Olá, gostaria de pedir sua ajuda na prescrição de T/P e Magic_Number no meu EA. Cumprimentos ao Timofey.

 

Boa tarde.

como você escreveria uma peça como esta?

duplo a; //

duplo b; // ambos a e b podem assumir absolutamente qualquer valor: números, leituras de indicadores, número de ticks para 500 velas, etc.

duplo X; // valor de desvio +-X

se

(a+x e a-x) cai no campo dos valores (b+x e b-x)

{ação}

senão

{regresso 0}

 
trader781:

Boa tarde.

como você escreveria uma peça como esta?

duplo a; //

duplo b; // ambos a e b podem assumir absolutamente qualquer valor: números, leituras de indicadores, número de ticks para 500 velas, etc.

duplo X; // valor de desvio +-X

se

(a+x e a-x) cai no campo dos valores (b+x e b-x)

{ação}

senão

{regresso 0}

Se x for o mesmo valor em todos os casos, você está essencialmente comparando dois números a e b. Não há dúvidas sobre como entrar em um intervalo aqui.

Por exemplo, pegue a = 10, b = 11. Então você quer que o intervalo 12 a 8 caia no intervalo 13 a 9?

 
Alexey Kozitsyn:

Se x for o mesmo em todos os casos, você está essencialmente comparando dois números a e b. Não se trata de nenhum intervalo.

Por exemplo, pegue a = 10, b = 11. Então você quer que o intervalo 12 a 8 caia no intervalo 13 a 9?

É isso mesmo.