Escribiré un asesor gratuito de mql4 - página 7

 
Hola, tengo una idea, te la puedo contar por aquí o en persona, dime qué te parece.
 
Hola, ¿puede ayudarme a perfeccionar mi EA?
 
Andrey Luxe:

Para ganar experiencia en esta área, voy a escribir 25 EAs gratis para sus ideas y estrategias interesantes

Sólo quedan 19 EAs

Tengo un problema de este tipo, ya tengo un EA y funciona bien, el problema es con el bloqueo del trailing stop. Por alguna razón no funciona y no se abre cuando se negocia. Aquí está el propio EA. ¿Tal vez tengas alguna idea de lo que ocurre con el trailing stop? No tengo ni idea de qué hacer sin ella.

Ishimoku - MACD.mq4

//| TO |

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

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

#property copyright "TO"

#enlace de propiedad "http://www.forex-tradexperts-to.narod.ru"

#include <WinUser32.mqh>


extern string Parameters=" Ichimoku";

extern intern tenkan_sen=3;

extern intern kijun_sen=48;

extern intern senkou_span_b=52;

extern string Parameters="Media móvil";

extern int maPeriod=4;

extern int ma_method=1;

extern int precio_aplicado=3;

cadena externa Parámetros=" MACD";

extern int FastEMA=22;

extern int SlowEMA=52;

extern int SeñalEMA=9;

cadena externa Parameters=" EA";

extern int TP=200;

extern int SL=500;

extern int deslizamiento=3;

extern double lot=0.1;

extern bool Add1/*(TENKANSEN resp. KIJUNSEN)*/ =true;

extern bool Add2/*(TENKANSEN revisado Ma)*/=true;

extern bool trailing=true;

extern double trailingStop=200;

extern int zashita=1;


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

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

int ticket=0;

int i;

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

int init()

{

return(0);

}

int deinit()

{

return(0);

}


int inicio()

{

t1=Tiempo[0];


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

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

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

double 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);

double 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);

double MA1=iMA(NULL,0,maPeriod,0,ma_method,applied_price,1);

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

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

{ // Señal de COMPRA del MACD

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

}

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

{ // Señal de VENTA del MACD

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

}

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

{ // La señal de Ishimoku cruza la MA en COMPRA

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

}

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

{ // La señal de Ishimoku cruza la MA en VENTA

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

}

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

{ // La señal de Ishimoku cruza rápido y lento a la COMPRA

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

}

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

{ // Señal en Ishimoku Fast cruza Slow en SELL

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

}

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

{ //abre las adiciones

PlaySound("Alert.wav");

int=MessageBox("¿Añadir una orden de compra?",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)Alert("¡¡¡Orden no establecida!!! error - "+GetLastError()+"set manually");}

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

}

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

{ //abre las adiciones

PlaySound("Alert.wav");

int ret2=MessageBox("¿Añadir una orden de venta?",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)Alert("¡¡¡Orden no establecida!!! error - "+GetLastError()+"set manually");}

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

}

for(i=Total de pedidos()-1;i>=0;i--)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderType()==OP_BUY)

{

buy1=false;buy2=false;buy22=true;

romper;

}

}

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

{ // Añadir por Ma y Tenkan_sen para comprar

PlaySound("Alert.wav");

int ret3=MessageBox("¿Añadir una orden de compra?",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)Alert("¡¡¡Orden no establecida!!! error - "+GetLastError()+"set manually");}

t4=Time[0];buy22=false;

}

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

{ // Añadir por Ma y Tenkan_Sen en la venta

PlaySound("Alert.wav");

int ret4=MessageBox("¿Añadir una orden de venta?",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)Alert("¡¡¡Orden no establecida!!! error - "+GetLastError()+"set manually");}

t4=Time[0];sell22=false;

}

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

{ //abre las órdenes iniciales

for(i=Total de pedidos()-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("¡¡¡Orden no establecida!!! error - "+GetLastError()+"set manually");

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

}

for(i=Total de pedidos()-1;i>=0;i--)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderType()==OP_SELL)

{

sell1=false;sell2=false;sell22=true;

romper;

}

}

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

{ //abre las órdenes iniciales

for(i=Total de pedidos()-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("¡¡¡Orden no establecida!!! error - "+GetLastError()+"set manually");

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

}

//Parada de la cola

doble SL,TP,openprice,profit;

int ticketOrder,zamok,type;

cadena de comunicación;

for(i=Total de pedidos();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);

}

}

return(0);

}

 

No voy a responder a todas, pero sin duda es un error:

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

La última orden es OrdersTotal()-1.

 
Hola, pueden ayudarme con un EA ya hecho sobre Ishimoku y MASD. El EA funciona, pero por alguna razón no pone un trailing stop cuando se dan las condiciones. No estoy familiarizado con MQL4, por lo que no estoy seguro de lo que hay que cambiar en él. Lo más probable es que haya un error en el bloque de trailing stop. Gracias de antemano. Sin esta función es un inconveniente importante para el comercio.
Archivos adjuntos:
 

¿se puede escribir/escribir un multi EA gratis?

El maniquí está disponible.

 

Hola, me gustaría pediros ayuda para prescribir T/P y Magic_Number en mi EA. Saludos Timofey.

 

Buenas tardes.

¿cómo escribirías un artículo como este?

doble a; //

double b; // tanto a como b pueden tomar absolutamente cualquier valor: números, lecturas de indicadores, número de ticks para 500 velas, etc.

double X; // valor de desviación +-X

si

(a+x y a-x) entra en el campo de valores (b+x y b-x)

{acción}

si no

{devuelve 0}

 
trader781:

Buenas tardes.

¿cómo escribirías una pieza como esta?

doble a; //

double b; // tanto a como b pueden tomar absolutamente cualquier valor: números, lecturas de indicadores, número de ticks para 500 velas, etc.

double X; // valor de desviación +-X

si

(a+x y a-x) entra en el campo de valores (b+x y b-x)

{acción}

si no

{devuelve 0}

Si x es el mismo valor en todos los casos, se están comparando esencialmente dos números a y b. No se trata de entrar en un intervalo aquí.

Por ejemplo, tomemos a = 10, b = 11. Entonces, ¿quieres que el intervalo 12 a 8 caiga en el intervalo 13 a 9?

 
Alexey Kozitsyn:

Si x es igual en todos los casos, se están comparando dos números a y b. No se trata de ningún intervalo.

Por ejemplo, tomemos a = 10, b = 11. Entonces, ¿quieres que el intervalo 12 a 8 caiga en el intervalo 13 a 9?

Así es.