我将写一个免费的mql4顾问 - 页 7 1234567891011121314...20 新评论 Kirill Andreev 2016.10.11 17:57 #61 你好,我有一个想法,我可以在这里或当面告诉你,告诉我你喜欢怎样。 Anastasiya Bovyrina 2016.10.25 02:12 #62 你好,你能帮我完善我的EA吗? Сергей Постельник 2016.10.31 08:19 #63 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);} I will write a KimIV的有用功能 [存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. [删除] 2016.10.31 08:28 #64 Сергей Постельник我不会回答所有的问题,但这绝对是一个错误。for(i=OrdersTotal();i>=0;i--)最后一个订单是OrdersTotal()-1。 Сергей Постельник 2016.10.31 19:22 #65 你好,你能帮我做一个关于石木和MASD的现成的EA吗?该EA工作,但由于某些原因,当条件发生时,它没有设置追踪止损。我对MQL4并不熟悉,因此我不确定该如何改变它。最有可能的是,在追踪止损块中存在一个错误。预先感谢你。如果没有这个功能,对交易来说是一个很大的缺点。 附加的文件: Ishimoku_MACD.mq4 9 kb flat55 2016.11.03 12:16 #66 你能免费写/写一个多重EA吗?假人是可以的。 Timofey Emeliashin 2016.11.03 20:34 #67 你好,我想请你帮忙在我的EA中开出T/P和Magic_Number的处方。问候蒂莫菲。 Mickey Moose 2016.11.04 08:10 #68 下午好。你会如何写这样的文章?double a; //double b; // a和b绝对可以取任何值:数字、指标读数、500根蜡烛的点数等等。double X; // 偏差值 +-X如果(a+x和a-x)落入值域(b+x和b-x){行动}否则[返回0]。 [删除] 2016.11.04 10:02 #69 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的区间? Mickey Moose 2016.11.04 10:56 #70 Alexey Kozitsyn:如果x在所有情况下都是一样的,你基本上是在比较两个数字a和b。不存在任何间隔的问题。例如,以a=10,b=11为例。所以你想让12到8的区间落入13到9的区间?这就对了。 1234567891011121314...20 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
为了获得这方面的经验,我将免费为你的有趣想法和策略编写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);
}
我不会回答所有的问题,但这绝对是一个错误。
最后一个订单是OrdersTotal()-1。
你能免费写/写一个多重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]。
下午好。
你会如何写这样的文章?
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的区间?
如果x在所有情况下都是一样的,你基本上是在比较两个数字a和b。不存在任何间隔的问题。
例如,以a=10,b=11为例。所以你想让12到8的区间落入13到9的区间?
这就对了。