初学者的问题 MQL5 MT5 MetaTrader 5 - 页 523 1...516517518519520521522523524525526527528529530...1503 新评论 [删除] 2016.02.26 20:00 #5221 EA中的包络 指标,EA自己写的,在设置中我放了一个移位(-7)。 为什么EA在包络指标中没有开出负移位的订单? Oksana Berenko 2016.02.26 22:26 #5222 Vagif Babaev:EA中的包络 指标,EA自己写的,在设置中我放了一个移位(-7)。 为什么EA在包络指标中没有开出负移位的订单? 在iEnvelopes中,从指示器缓冲区 收到的数值的索引不应小于移位,即最后的数值不应小于7。 Sergey Gritsay 2016.02.27 03:52 #5223 demonoid123000: 亲爱的程序员们。你能帮忙吗?我想把未结订单的数量附在专家顾问上。我不知道这是否会有帮助。我把这些猫头鹰放在几对上,只有一个订单被打开。如果我在其中一个货币对上开了一个订单,另一个货币对上的信号就不会被忽略。我不知道该如何处理它。问题是这个条件if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)它应该是这样的。//+------------------------------------------------------------------+ //| Hippo_Buy.mq4 | //| ut_Kanada | //| albertgod1972@mail.ru | //+------------------------------------------------------------------+ #property copyright "ut_Kanada" #property link "albertgod1972@mail.ru" #property version "1.00" #property strict //===================================================================+ // ЗАДАНЫЕ ЗНАЧЕНИЯ | //===================================================================+ extern double Lot= 0.1; extern bool Stop = true; extern int SL = 250; extern int TP = 500; extern bool BU=false; // Переменная для включения Безубытка. extern bool Tral = true; // Переменная для выключения трала. extern int putr = 100; // Включение трала при прохождении цены putr пунктов. extern int TrailingStop = 150; // Непосредственно сам трал. //***************************************************************************************************************** //==================================================================+ // Переменные для программы | //==================================================================+ int TekBar = -1; // Текущий бар. int Or; // Номер ордера. //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ //==================================================================+ int start() { //==================================================================+ // Индикаторы | //==================================================================+ double TA1=NormalizeDouble(iCustom(NULL,0,"Trendsignal_Alert_Buy",3,300,true,true,0,0,false,1,0,1),Digits); //==================================================================+ // Условия модификации Ордеров. | //==================================================================+ if(Tral==true) { int cnt; for(cnt=OrdersTotal(); cnt>=0; cnt--) { Or=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderType()==OP_SELL) { if(OrderOpenPrice()-Ask>=putr*Point) if(OrderStopLoss()>(Ask+Point*(TrailingStop+MarketInfo(Symbol(),MODE_SPREAD)))) Or=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,0); } if(OrderType()==OP_BUY) { if(Bid-OrderOpenPrice()>=putr*Point) if(OrderStopLoss()<(Bid-Point*(TrailingStop+MarketInfo(Symbol(),MODE_SPREAD)))) Or=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,0); } } } //==================================================================+ // Условия перевода в Безубыток. | //==================================================================+ if(BU==true) { int cnt; for(cnt=OrdersTotal(); cnt>=0; cnt--) { Or=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderType()==OP_SELL && OrderStopLoss()>=OrderOpenPrice()) { if(OrderOpenPrice()-Ask>=putr*Point) if(OrderStopLoss()>(Ask+Point*(TrailingStop+MarketInfo(Symbol(),MODE_SPREAD)))) Or=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,0); } if(OrderType()==OP_BUY) { if(Bid-OrderOpenPrice()>=putr*Point && OrderStopLoss()<=OrderOpenPrice()) if(OrderStopLoss()<(Bid-Point*(TrailingStop+MarketInfo(Symbol(),MODE_SPREAD)))) Or=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,0); } } } //==================================================================+ /* int q; for(q = 1; q <= Bars; q++) { double TAq = NormalizeDouble(iCustom(NULL,0,"Trendsignal_Alert_Buy",3,300,true,true,0,0,false,1,0,q),Digits); if(TAq != 0) { Comment("TAq = ",TAq); break; } }*/ //==================================================================+ // Условия и Открытие Ордеров. | //==================================================================+ if(Stop==true) { if(Total_orders(_Symbol)==0) { if(TekBar==Bars)return(0); TekBar=Bars; { if(TA1>High[1] && TA1!=0) // Условия продажи. Or=OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+SL*Point,Bid-TP*Point,"000",0,0,Tomato); // Продажа. if(TA1<Low[1] && TA1!=0) Or=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-SL*Point,Ask+TP*Point,"000",0,0,RoyalBlue); // Покупка. ; } } } if(Stop==false) { if(Total_orders(_Symbol)==0) { if(TekBar==Bars)return(0); TekBar=Bars; { if(TA1>High[1] && TA1!=0) // Условия продажи. Or=OrderSend(Symbol(),OP_SELL,Lot,Bid,3,0,0,"000",0,0,Tomato); // Продажа. if(TA1<Low[1] && TA1!=0) Or=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,0,0,"000",0,0,RoyalBlue); // Покупка. } } } //---- return(0); } //+------------------------------------------------------------------+ int Total_orders(string symbol //int type ) { int n=0; int total=OrdersTotal(); for(int i=0; i<total; i++) { if(OrderSelect(i,SELECT_BY_POS)) { //if(OrderType()!=type)continue; //if(OrderMagicNumber()!=Magic)continue; if(OrderSymbol()!=symbol)continue; n++; } } return(n); } //+------------------------------------------------------------------+ Sergey Gritsay 2016.02.27 10:22 #5224 angel341:哪个参数或函数有助于将指标向上或向下移动n点? 增加了移位参数,正数向上移位,负数向下移位。 附加的文件: MultiInstrument.mq4 4 kb demonoid123000 2016.02.27 11:12 #5225 Sergey Gritsay:问题是这个条件它应该是这样工作的 我根本不懂编程语言......总之我不明白。也许你可以改变这些数值? Sergey Gritsay 2016.02.27 11:33 #5226 demonoid123000: 我根本不知道编程语言......我不了解它。也许你可以改变这些数值? 那么你从哪里得到这个代码? angel341 2016.02.27 12:25 #5227 Sergey Gritsay: 增加了Shift参数,正数往上偏移,负数往下偏移。 非常感谢!我现在就去测试!!!! angel341 2016.02.27 13:11 #5228 Sergey Gritsay: добавил параметр Shift, положительное число смещение вверх, отрицательное вниз.非常感谢您! toni_stark 2016.02.27 19:36 #5229 Sergey Gritsay:他的意思是这样的 执行这个函数会删除订单吗?如果它在代码的开头被调用:" if(TimeCurrent()>=D'23:50')close_all();return;" 那么程序就不能继续工作,即订单没有被打开,日志中显示 "按了停止按钮"。如果我删除这一行,一切都能正常工作并打开。能否请你解释一下哪里出了问题?我对细节了解不多,所以我只是复制了该函数的主体。 Sergey Gritsay 2016.02.28 02:11 #5230 toni_stark: 执行这个函数会删除订单吗?如果它在代码的开头被调用:" if(TimeCurrent()>=D'23:50')close_all();return;" 那么程序就不能继续工作,即订单没有被打开,日志中显示 "按了停止按钮"。如果我删除这一行,一切都能正常工作并打开。能否请你解释一下哪里出了问题?我不擅长细节,所以我只是复制了该函数的主体。 请提供您的代码 1...516517518519520521522523524525526527528529530...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
EA中的包络 指标,EA自己写的,在设置中我放了一个移位(-7)。 为什么EA在包络指标中没有开出负移位的订单?
亲爱的程序员们。你能帮忙吗?我想把未结订单的数量附在专家顾问上。我不知道这是否会有帮助。我把这些猫头鹰放在几对上,只有一个订单被打开。如果我在其中一个货币对上开了一个订单,另一个货币对上的信号就不会被忽略。我不知道该如何处理它。
问题是这个条件
它应该是这样的。
哪个参数或函数有助于将指标向上或向下移动n点?
问题是这个条件
它应该是这样工作的
我根本不知道编程语言......我不了解它。也许你可以改变这些数值?
增加了Shift参数,正数往上偏移,负数往下偏移。
Sergey Gritsay:
добавил параметр Shift, положительное число смещение вверх, отрицательное вниз.
非常感谢您!
他的意思是这样的
执行这个函数会删除订单吗?如果它在代码的开头被调用:" if(TimeCurrent()>=D'23:50')close_all();return;" 那么程序就不能继续工作,即订单没有被打开,日志中显示 "按了停止按钮"。如果我删除这一行,一切都能正常工作并打开。能否请你解释一下哪里出了问题?我不擅长细节,所以我只是复制了该函数的主体。