我将写一个免费的mql4顾问 - 页 7

 
你好,我有一个想法,我可以在这里或当面告诉你,告诉我你喜欢怎样。
 
你好,你能帮我完善我的EA吗?
 
Andrey Luxe:

为了获得这方面的经验,我将免费为你的有趣想法和策略编写25个EA。

只剩下19个EA了

我有这样一个问题,我已经有了一个EA,它工作得很好,问题是追踪止损块。由于某些原因,它不能工作,在交易时不能打开。以下是该EA本身。也许你知道拖曳式止损的问题出在哪里?没有它,我不知道该怎么办。

石木-MACD.mq4|

//| TO |

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

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

#财产版权"TO"

#属性链接 "http://www.forex-tradexperts-to.narod.ru"

#include <WinUser32.mqh>.


外部字符串 Parameters=" Ichimoku"。

外部实习生 tenkan_sen=3;

外部实习生 kijun_sen=48;

外部实习生Senkou_span_b=52;

extern string Parameters="Moving Average";

外来的int maPeriod=4;

外部int ma_method=1;

外来的int applied_price=3;

外部字符串 Parameters=" MACD"。

外来的int FastEMA=22。

外置int SlowEMA=52。

外置 int SignalEMA=9;

extern string Parameters=" EA";

外部int TP=200。

extern int SL=500。

外来的int slippage=3;

外来的双倍lot=0.1。

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

外部 bool Add2/*(TENKANSEN revised Ma)*/=true;

外部的bool trailing=true。

外来的双倍尾随止损(trailingStop)=200。

外来的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 start()

{

t1=时间[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);

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

{ // MACD买入信号

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

}

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

{ // MACD卖出信号

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

}

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

{ // Ishimoku信号在买入时穿过MA。

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

}

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

{ // 石木信号穿过MA就卖出

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

}

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

{ // Ishimoku信号快速交叉慢速买入

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

}

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

{ // 在石牧的信号中,快速交叉慢速卖出

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

}

如果(Add1==true && buy3==true && buy4==true && t1! =t8)

{ //开放补充

PlaySound("Alert.wav")。

int=MessageBox("Add an order to Buy?",MB_YESNO|MB_ICONQUESTION)。

如果(ret==6){ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,slipage,Bid-SL*Point,Ask+TP*Point,NULL,0,0,Blue);如果(ticket>0)PlaySound("ok。wav");if(ticket<0)Alert("订单未设置!!错误 - "+GetLastError()+"手动设置");}

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

}

如果(Add1==true && sell3==true && sell4==true && t1!=t7)

{ //开放补充

PlaySound("Alert.wav")。

int ret2=MessageBox("Add a Sell order?",MB_YESNO|MB_ICONQUESTION);

如果(ret2==6){ticket=OrderSend(Symbol(,OP_SELL,lot,Bid,slipage,Ask-SL*Point,Bid+TP*Point,NULL,0,0,Red);如果(ticket>0)PlaySound("ok.wav");if(ticket<0)Alert("订单未设置!!错误 - "+GetLastError()+"手动设置");}

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

}

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

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES)。

如果(OrderType()==OP_BUY)

{

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

突破。

}

}

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

{ //由马云和Tenkan_Sen添加购买

PlaySound("Alert.wav")。

int ret3=MessageBox("Add an order to Buy?",MB_YESNO|MB_ICONQUESTION)。

如果(ret3==6){ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,slipage,Bid-SL*Point,Ask+TP*Point,NULL,0,0,Blue);如果(ticket>0)PlaySound("ok。wav");if(ticket<0)Alert("订单未设置!!错误 - "+GetLastError()+"手动设置");}

t4=Time[0];buy22=false;

}

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

{ // 由马云和Tenkan_Sen在卖出时添加的

PlaySound("Alert.wav")。

int ret4=MessageBox("Add an order to Sell?",MB_YESNO|MB_ICONQUESTION)。

如果(ret4==6){ticket=OrderSend(Symbol(,OP_SELL,lot,Bid,slipage,Ask-SL*Point,Bid+TP*Point,NULL,0,0,Red);如果(ticket>0)PlaySound("ok.wav");if(ticket<0)Alert("订单未设置!!错误 - "+GetLastError()+"手动设置");}

t4=Time[0];sell22=false;

}

如果(buy1==true && buy2==true && t1! =t2)

{ //开启初始订单

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

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES)。

如果(OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),Ask,slipage,Gold)。

}

PlaySound("Alert.wav")。

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

如果(ticket>0)PlaySound("ok.wav")。

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

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

}

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

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES)。

如果(OrderType()==OP_SELL)

{

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

突破。

}

}

如果(sell1==true && sell2==true && t1! =t2)

{ //开启初始订单

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

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES)。

如果(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,slipage,Gold)。

}

PlaySound("Alert.wav")。

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

如果(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。

}

//拖曳停止

双SL,TP,openprice,profit。

int ticketOrder,zamok,type;

弦外之音。

for(i=OrdersTotal();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)

{

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

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

TP=OrderTakeProfit()。

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

如果(OrderType()==1)如果(SL<=OrderStopLoss()-trailingStop*Point)OrderModify(OrderTicket(),OrderOpenPrice(),SL,TP,0)。

}

}

return(0);

}

 

我不会回答所有的问题,但这绝对是一个错误。

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

最后一个订单是OrdersTotal()-1。

 
你好,你能帮我做一个关于石木和MASD的现成的EA吗?该EA工作,但由于某些原因,当条件发生时,它没有设置追踪止损。我对MQL4并不熟悉,因此我不确定该如何改变它。最有可能的是,在追踪止损块中存在一个错误。预先感谢你。如果没有这个功能,对交易来说是一个很大的缺点。
附加的文件:
 

你能免费写/写一个多重EA吗?

假人是可以的。

 

你好,我想请你帮忙在我的EA中开出T/P和Magic_Number的处方。问候蒂莫菲。

 

下午好。

你会如何写这样的文章?

double a; //

double b; // a和b绝对可以取任何值:数字、指标读数、500根蜡烛的点数等等。

double X; // 偏差值 +-X

如果

(a+x和a-x)落入值域(b+x和b-x)

{行动}

否则

[返回0]。

 
trader781:

下午好。

你会如何写这样的文章?

double a; //

double b; // a和b绝对可以取任何值:数字、指标读数、500根蜡烛的点数等等。

double X; // 偏差值 +-X

如果

(a+x和a-x)落入值域(b+x和b-x)

{行动}

否则

[返回0]。

如果x在所有情况下都是相同的值,那么你本质上是在比较两个数字a和b。在这里进入一个区间是毫无疑问的。

例如,以a=10,b=11为例。所以你想让12到8的区间落入13到9的区间?

 
Alexey Kozitsyn:

如果x在所有情况下都是一样的,你基本上是在比较两个数字a和b。不存在任何间隔的问题。

例如,以a=10,b=11为例。所以你想让12到8的区间落入13到9的区间?

这就对了。