double LotsizeCalc() { if(OrderSelect(lastTradeTicket(),MODE_HISTORY)) if(OrderProfit()<0 && tradeNumber 0){ if(OrderSelect(ticket,SELECT_BY_TICKET)){ sl = OrderOpenPrice()+(StopLoss*pips); if(StopLoss==0)sl=0; tp = OrderOpenPrice()-(TakeProfit*pips); if(OrderType()==OP_BUY){ sl = OrderOpenPrice()-(StopLoss*pips); if(StopLoss==0)sl=0; tp = OrderOpenPrice()+(TakeProfit*pips); } if(!OrderModify(ticket,price,sl,tp,0,Magenta)) { err = GetLastError(); Print("Encountered an error during modification!"+(string)err+" "+ErrorDescription(err) ); } } else{//in case it fails to select the order for some reason Print("Failed to Select Order ",ticket); err = GetLastError(); Print("Encountered an error while seleting order "+(string)ticket+" error number "+(string)err+" "+ErrorDescription(err) ); } } else{//in case it fails to place the order and send us back a ticket number. err = GetLastError(); Print("Encountered an error during order placement!"+(string)err+" "+ErrorDescription(err) ); if(err==ERR_TRADE_NOT_ALLOWED)MessageBox("You can not place a trade because \"Allow Live Trading\" is not checked in your options. Please check the \"Allow Live Trading\" Box!","Check Your Settings!"); } }
再次感谢Mladen的专业技能--这正是我在寻找的东西。在我测试了一下之后,我将为它提供几种用途。我再一次向你致敬。祝好
BTW--你发布的所有图片上的那两个指标是什么,我在哪里可以找到它们?一个看起来像日线蜡烛,另一个显示基本图表数据。预先感谢
BTW - 你发布的所有图片上的那两个指标是什么,我在哪里可以找到它们?一个看起来像日线蜡烛,另一个显示基本图表数据。预先感谢
琵琶网
那是来自这里的每日数据指标 :https://www.mql5.com/en/forum/178698/page7
#4793
你是否有原始的(未反编译的)源代码?如果有,请把那个版本贴出来,以便有人可以修改它。
对不起,我没有原件,"Barry Standers "在哪里?
警报代码在最后可见,我想我可以用正确的邮件格式把 "警报 "换成 "SendMail",但没有成功。
这实际上是因为它被反编译了,所以它不能工作?
还是有其他问题,为什么你不喜欢用它来编辑?
请注意。
#4793
对不起,我没有原件,"Barry Standers "在哪里?
警报代码在最后可见,我想我可以用正确的邮件格式将 "警报 "换成 "SendMail",但没有成功。
这实际上是因为它被反编译了,所以它不能工作?
还是有其他问题,为什么你不喜欢用它来编辑?
最好的问候。zigflip
我认为最好读一下这个帖子:https://www.mql5.com/en/forum/183322(这样我们就可以避免我重复自己的内容
)
嗨,mladen。 决定放弃ADX的事情,但我有一个问题要问你。
标准的Metatrader指标包包含一个ADX指标。 它在数据窗口中显示ADX、+DI、-DI值。
问题:是否有办法将+/-DI值倒入数据框中。 我真的只需要显示ADX值。
如果有,你能告诉我怎么做吗?
谢谢
嗨,mladen。 决定放弃ADX的事情,但我有一个问题要问你。
标准的Metatrader指标包包含一个ADX指标。 Bog标准,它在数据窗口显示ADX、+DI、-DI值。
问题:是否有办法将+/-DI值倒入数据框中。 我真的只需要显示ADX值。
如果有,你能告诉我怎么做吗?
很多,谢谢洁维士
你不能用内置的ADX改变任何东西来隐藏ADX的DI+和DI-值。这需要一个自定义指标--我们不能改变内置指标在数据窗口中显示数据的方式。
非常感谢mladen......感谢你的回答。你有兴趣为我定制 一个指标 吗?
非常感谢mladen......感谢你的回答。你有兴趣为我制作一个自定义指标吗?
杰维斯
你可以使用这个:https://www.mql5.com/en/forum/173404,并防止在数据窗口(以及指标子窗口)中显示ADX以外的数值,取代这个。
SetIndexLabel(1,"+DI");
SetIndexLabel(2,"-DI");
SetIndexLabel(3,"ADXUp");
SetIndexLabel(4,"ADXDown");[/PHP]
with this
[PHP] SetIndexLabel(0,"ADX");
SetIndexLabel(1,NULL);
SetIndexLabel(2,NULL);
SetIndexLabel(3,NULL);
SetIndexLabel(4,NULL);你好。
谁能帮助我解决我的LotsizeCalc()函数。
如果我的最后一笔交易是失败的,我想把我的手数乘以'MartingaleAmount'。如果我的最后一笔交易是赢家,我想使用 "正常 "手数。不幸的是,当我回测 EA时,我从日志中得到了错误4051。
这与手数有关,因为当我试图在没有 "LotsizeCalc() "函数的情况下运行该EA时,该EA仍然有效。
有谁知道为什么我的lotsize函数不能工作?
谢谢。
蒂埃里
extern int MaximumTrades = 10; extern double StopLoss=25; extern double TakeProfit=50; extern double MartingaleAmount = 1.5; input double LotSize=0.1; int magic; double pips; int tradeNumber; string ScreenComment; double martinlot; double martinsize;
[/PHP]
[PHP]
double LotsizeCalc() { if(OrderSelect(lastTradeTicket(),MODE_HISTORY)) if(OrderProfit()<0 && tradeNumber 0){ if(OrderSelect(ticket,SELECT_BY_TICKET)){ sl = OrderOpenPrice()+(StopLoss*pips); if(StopLoss==0)sl=0; tp = OrderOpenPrice()-(TakeProfit*pips); if(OrderType()==OP_BUY){ sl = OrderOpenPrice()-(StopLoss*pips); if(StopLoss==0)sl=0; tp = OrderOpenPrice()+(TakeProfit*pips); } if(!OrderModify(ticket,price,sl,tp,0,Magenta)) { err = GetLastError(); Print("Encountered an error during modification!"+(string)err+" "+ErrorDescription(err) ); } } else{//in case it fails to select the order for some reason Print("Failed to Select Order ",ticket); err = GetLastError(); Print("Encountered an error while seleting order "+(string)ticket+" error number "+(string)err+" "+ErrorDescription(err) ); } } else{//in case it fails to place the order and send us back a ticket number. err = GetLastError(); Print("Encountered an error during order placement!"+(string)err+" "+ErrorDescription(err) ); if(err==ERR_TRADE_NOT_ALLOWED)MessageBox("You can not place a trade because \"Allow Live Trading\" is not checked in your options. Please check the \"Allow Live Trading\" Box!","Check Your Settings!"); } }