编码帮助 - 页 439

 
neverbeast:
又见面了。

所以我做了一个带箭头的简单指标。不幸的是,它没有按照我的要求画出它们。我的目标是在条件满足时显示一个箭头,但当条件不再满足时,它应该删除这个箭头。举个例子。在当前蜡烛图的15秒内,条件得到满足,它画了一个箭头,然后它改变了方向,条件不再满足,所以它应该在当前蜡烛图收盘前删除这个箭头。目前,当条件得到满足时,它就会画出箭头,而且根本不重画,此外,还有显示它是否进入ITM或OTM/ATM的到期箭头,在刷新之前根本不画。谁能看一下并帮我解决这个问题?

6s.mq4

你的代码中根本就没有对前15秒的检查。你为什么不把这个检查也加进去呢?

 
mladen:
你的代码中根本就没有对前15秒的检查。你为什么不把这个检查也加进去呢?

我的错。这是我在这里描述的那个指标的另一个版本。无论如何,我是编码mql4的新手,不知道如何做。你能不能把这段代码写成一个小教程,说明它是如何工作的?

 
neverbeast:
我的错。我在这里描述的是该指标的另一个版本。无论如何,我是编码mql4的新手,不知道如何做到这一点。你能不能把这段代码写成小教程,说明它是如何工作的?

你可以这样做。

如果(TimeCurrent()-Time[0])>15)返回(0)。

把它放在start()过程的开头(作为其中的第一行),如果从当前蜡烛开始的秒数大于15,它将阻止其余代码的执行。

 

我有一个EA的代码,但我的技能是.....none。 我试着编译它,把错误解决掉,但没有成功。

有谁能帮忙吗?

//|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ // Price Action V1 //hodhabi@gmail.com//|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ #define NL "\n" extern double Lots = 1; extern double TP = 100; extern int TradeType = 0; // 0 to follow the trend, 1 to force buy, 2 to force sell extern int leverage = 5; extern double MaximumLossinMoney = 1000; extern int MagicNumber = 250346; extern bool UseAlerts = false; //+-------------+ //| Custom init |/|-------------+ int init() { } //+----------------+ //| Custom DE-init | //+----------------+ int deinit() { } void sendEmail() { if (UseAlerts==true) SendMail("YTF Alert", "New order has been added "+OrdersTotal()+" Balance = " +AccountBalance() + " Equity = " +AccountEquity() +" Current Price:" + Close[0]); return; } void DrawHorizentalLine() { ObjectCreate("Tprofit", OBJ_HLINE, 0, Time[1], Close[0]+500*Point); ObjectSet("Tprofit", OBJPROP_STYLE, STYLE_SOLID); ObjectSet("Tprofit", OBJPROP_COLOR, MediumSeaGreen); } //+! //+------------------------------------------------------------------------+ //|关闭一切 //+------------------------------------------------------------------------+ void CloseAll() { for(int i=OrdersTotal()-1;i>=0;i-) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_BUY && OrderMagicNumber()== MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo( OrderSymbol(), MODE_BID), 5, Red ) 。 如果( OrderType() == OP_SELL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if ( UseAlerts) PlaySound( "alert.wav"); } return; } void CloseAllBuy() { for(int i=OrdersTotal()-1;i>=0;i-) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_BUY && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red ); if ( UseAlerts) PlaySound( "alert.wav"); } return; } void CloseAllSell() { for(int i=OrdersTotal()-1;i>=0;i-) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_SELL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if ( UseAlerts) PlaySound("alert.wav"); } return; } //++ //| cancelled. //+------------------------------------------------------------------------+ //|取消所有处于盈利状态的订单 //+------------------------------------------------------------------------+ //|取消所有挂单 //+------------------------------------------------------------------------+ //+-----------+ //|主 | //+-----------+ int start() { int OrdersBUY, ticket; int OrdersSELL; double BuyLots, SellLots, BuyProfit, SellProfit; //+------------------------------------------------------------------+ //确定最后的订单价格 | //-------------------------------------------------------------------+ if(OrdersTotal()==0 && TradeType ==1 ) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-TP*Point,Ask+leverage*TP*Point, "MLTrendETF",MagicNumber,0,Green) 。 TradeType=2; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) sendEmail(); } else Print("错误打开BUY订单:",GetLastError()); return(0); } if(OrdersTotal()==0 && TradeType ==2) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+TP*Point, Bid-TP*leverage*Point, "MLTrendETF",MagicNumber,0,Green) 。 TradeType = 1; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) sendEmail(); } else Print("错误打开BUY订单 :",GetLastError()); return(0); } }// start()

 

对不起,这里没有乱七八糟的东西

//|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ // Price Action V1 //hodhabi@gmail.com//|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ #define NL "\n" extern double Lots = 1; extern double TP = 100; extern int TradeType = 0; // 0为跟随趋势,1为强制买入,2为强制卖出 extern int leverage = 5; extern double MaximumLossinMoney = 1000; extern int MagicNumber = 250346; extern bool UseAlerts = false; //+-------------+ //| Custom init |/|-------------+ int init() { } //+----------------+ //| Custom DE-init | //+----------------+ int deinit() { } void sendEmail() { if (UseAlerts==true) SendMail("YTF Alert", "New order has been added "+OrdersTotal()+" Balance = " +AccountBalance() + " Equity = " +AccountEquity() +" Current Price:" + Close[0]); return; } void DrawHorizentalLine() { ObjectCreate("Tprofit", OBJ_HLINE, 0, Time[1], Close[0]+500*Point); ObjectSet("Tprofit", OBJPROP_STYLE, STYLE_SOLID); ObjectSet("Tprofit", OBJPROP_COLOR, MediumSeaGreen); } //+! //+------------------------------------------------------------------------+ //|关闭一切 //+------------------------------------------------------------------------+ void CloseAll() { for(int i=OrdersTotal()-1;i>=0;i-) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_BUY && OrderMagicNumber()== MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo( OrderSymbol(), MODE_BID), 5, Red ) 。 如果( OrderType() == OP_SELL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if ( UseAlerts) PlaySound( "alert.wav"); } return; } void CloseAllBuy() { for(int i=OrdersTotal()-1;i>=0;i-) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_BUY && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red ); if ( UseAlerts) PlaySound( "alert.wav"); } return; } void CloseAllSell() { for(int i=OrdersTotal()-1;i>=0;i-) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_SELL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if ( UseAlerts) PlaySound("alert.wav"); } return; } //++ //| cancelled. //+------------------------------------------------------------------------+ //|取消所有处于盈利状态的订单 //+------------------------------------------------------------------------+ //|取消所有挂单 //+------------------------------------------------------------------------+ //+-----------+ //|主 | //+-----------+ int start() { int OrdersBUY, ticket; int OrdersSELL; double BuyLots, SellLots, BuyProfit, SellProfit; //+------------------------------------------------------------------+ //确定最后的订单价格 |/-------------------------------------------------------------------+ if(OrdersTotal()==0 && TradeType ==1 ) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-TP*Point,Ask+leverage*TP*Point, "MLTrendETF",MagicNumber,0,Green) TradeType=2; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) sendEmail(); } else Print("错误打开BUY订单:",GetLastError()); return(0); } if(OrdersTotal()==0 && TradeType ==2) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+TP*Point, Bid-TP*leverage*Point, "MLTrendETF",MagicNumber,0,Green) 。 TradeType = 1; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) sendEmail(); } else Print("错误打开BUY订单 :",GetLastError()); return(0); } }// start()

 
godrich:
对不起,这里没有乱七八糟的东西 //|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ //价格行动 V1 //hodhabi@gmail.com//|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ #define NL "\n" extern double Lots = 1; extern double TP = 100; extern int TradeType = 0; // 0表示跟随趋势,1表示强制买入,2表示强制卖出 extern int leverage = 5; extern double MaximumLossinMoney = 1000; extern int MagicNumber = 250346; extern bool UseAlerts = false; //+-------------+ //| Custom init | //|-------------+ int init() { } //+----------------+ //| Custom DE-init | //+----------------+ int deinit() { } void sendEmail() { if (UseAlerts==true) SendMail("YTF Alert", "New order has been added "+OrdersTotal()+" Balance = " +AccountBalance() + " Equity = " +AccountEquity() +" Current Price:" + Close[0]); return; } void DrawHorizentalLine() { ObjectCreate("Tprofit", OBJ_HLINE, 0, Time[1], Close[0]+500*Point); ObjectSet("Tprofit", OBJPROP_STYLE, STYLE_SOLID); ObjectSet("Tprofit", OBJPROP_COLOR, MediumSeaGreen); } //+! //+------------------------------------------------------------------------+ //|关闭一切 //+------------------------------------------------------------------------+ void CloseAll() { for(int i=OrdersTotal()-1;i>=0;i-) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_BUY && OrderMagicNumber()== MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo( OrderSymbol(), MODE_BID), 5, Red ) 。 如果( OrderType() == OP_SELL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if ( UseAlerts) PlaySound( "alert.wav"); } return; } void CloseAllBuy() { for(int i=OrdersTotal()-1;i>=0;i-) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_BUY && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red ); if ( UseAlerts) PlaySound( "alert.wav"); } return; } void CloseAllSell() { for(int i=OrdersTotal()-1;i>=0;i-) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_SELL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if ( UseAlerts) PlaySound("alert.wav"); } return; } //++ //| cancelled. //+------------------------------------------------------------------------+ //|取消所有处于盈利状态的订单 //+------------------------------------------------------------------------+ //|取消所有挂单 //+------------------------------------------------------------------------+ //+-----------+ //|主 | //+-----------+ int start() { int OrdersBUY, ticket; int OrdersSELL; double BuyLots, SellLots, BuyProfit, SellProfit; //+------------------------------------------------------------------+ //确定最后的订单价格 | //-------------------------------------------------------------------+ if(OrdersTotal()==0 && TradeType ==1 ) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-TP*Point,Ask+leverage*TP*Point, "MLTrendETF",MagicNumber,0,Green) 。 TradeType=2; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) sendEmail(); } else Print("错误打开BUY订单:",GetLastError()); return(0); } if(OrdersTotal()==0 && TradeType ==2) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+TP*Point, Bid-TP*leverage*Point, "MLTrendETF",MagicNumber,0,Green) 。 TradeType = 1; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) sendEmail(); } else Print("错误打开BUY订单:",GetLastError()); return(0); } }// start()

冯小刚

你能附上mq4文件吗?

这样的话,如果粘贴到元编辑器中就无法使用了。

 

不确定这是否有效,但...

附加的文件:
pac.mq4  5 kb
 

你好。

我刚刚发现了PetD指标,它可以在我的蜡烛图上画一条红色或绿色的线。我想知道的是,是否有可能用彩色柱状图的条带来代替。

这样我就可以有一个单独的窗口,上面有绿色或红色的柱子。

谢谢

pet-d_full_option.mq4

附加的文件:
 
NWFstudent:
你好。

我刚刚发现了PetD指标,它可以在我的蜡烛图上画一条红色或绿色的线。我想知道的是,是否有可能用一条彩色直方图来代替。

这样我就可以有一个单独的窗口,上面有绿色或红色的柱子。

谢谢

pet-d_full_option.mq4

尊敬的NWF学生

这里也有这种类型:pet-d_full_option_-_separate.mq4

附加的文件:
 
makototokyo:
你好。

这个指标似乎不能很好地发出警报。我觉得它只在MT4启动后发出过一次警报,而在第一次警报之后,它就不发出声音了。我还意识到,它只在条形图处于 "高潮 "时发出声音,但我希望它在条形图处于 "上升 "时发出声音。

有谁能修复这个音量指标的代码?

如果你有时间为这个蜡烛指标做同样的事情,我很感激,但我不想占用你太多的时间。

提前谢谢你。

Makototokyo,把独立窗口版本中的警报改掉了,使用 "牛市上涨和熊市上涨 "的警报,它们在这个版本中应该可以正常工作。

附加的文件: