非常有用。谢谢。
史蒂文
尾部示例出错。
请说明是哪一个。
程序员们,请帮助解决 mql5 的问题!
是否可以像在 mql4 中一样,不使用任何类而只使用普通的跟踪函数?例如,就像在Moving Averages.mq5 中实现 TradeSizeOptimised 函数一样。
我已经搜索了所有范例、文章和论坛,但一无所获。我已经完全迷失了....。也许有人有现成的变体,我会非常感激!!! - 我真的很想参加冠军赛。
Setslav:
程序员们,请帮助解决 mql5 的问题!
是否可以像在 mql4 中一样,不使用任何类而只使用普通的跟踪函数?例如,就像在 Moving Averages.mq5 中实现 TradeSizeOptimised 函数一样。
我已经搜索了所有范例、文章和论坛,但一无所获。我已经完全迷失了....。也许有人有现成的变体,我会非常感激!!! - 我真的很想参加冠军赛。
给您
int TrailingStop() { if(PositionSelect(Symbol())) // 选择位置 { //MqlTradeRequest m_request;// 向服务器声明请求结构 //MqlTradeResult m_result;// 声明服务器响应结构 double Bid = SymbolInfoDouble(Symbol(), SYMBOL_BID); // 将出价写入变量 double Ask = SymbolInfoDouble(Symbol(), SYMBOL_ASK); // 写入变量卖价 double OpenPrice=PositionGetDouble(POSITION_PRICE_OPEN); // 将建仓价格写入变量 double PositionSL=PositionGetDouble(POSITION_SL); // 将止损水平写入变量 double PositionTP=PositionGetDouble(POSITION_TP); // 将获利水平写入变量 if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) // 定义位置类型 { if(TrailWhileMinus==true || Bid-OpenPrice>_Point*Trail) // 在第一站转运达到收支平衡之前,不进行拖网作业 { if(Bid-PositionSL>Trail*_Point) //必须移动止损的基本条件 { //--- 向结构体写入数据 request.action = TRADE_ACTION_SLTP; request.symbol = Symbol(); request.sl = NormalizeDouble(Bid-Trail*_Point,_Digits); request.tp = NormalizeDouble(PositionTP,_Digits); //--- return(OrderSend(request,result)); // 向服务器发送请求 } } } else { if(TrailWhileMinus==true || OpenPrice-Ask>_Point*Trail) // 在第一站转运达到收支平衡之前,不进行拖网作业 { if(PositionSL-Ask>Trail*_Point) //必须移动止损的基本条件 { //--- 向结构体写入数据 request.action = TRADE_ACTION_SLTP; request.symbol = Symbol(); request.sl = NormalizeDouble(Ask+Trail*_Point,_Digits); request.tp = NormalizeDouble(PositionTP,_Digits); //--- return(OrderSend(request,result)); // 向服务器发送请求 } } } } return(0); }
sergey1294:
给你
我认为(可能不无道理)结果最好作为参数传递:)
否则就无法对其进行分析。这多少有点不太好...
PS
我还想创建两个函数 - TrailingStopBuy 和 TrailingStopSell
Interesting:
我给他举了个例子,因为他的大脑已经知道如何写一个普通的跟踪,然后让他稍微想一想,在测试器中,原则上这个结构可以正常工作,不会出错。
我认为(可能不无道理)结果最好作为参数传递:)
否则就无法对其进行分析。这多少有点不太好...
PS
我还会创建两个函数 - TrailingStopBuy 和 TrailingStopSell。
sergey1294:
我给他举了个例子,因为他已经想好了如何写一个普通的拖尾,然后让他稍微想一想,这样就不会出错了,原则上在测试仪中,这样的设计工作得很好。
作为一个例子当然可以,但如果不对结果 进行分析,就会出现很多错误(迟早的事)......
我给他举了个例子,因为他已经想好了如何写一个普通的拖尾,然后让他稍微想一想,这样就不会出错了,原则上在测试仪中,这样的设计工作得很好。
sergey1294:
谢谢
给您。
sergey1294、
再次感谢,一切正常
还有一个小问题,如何在函数中添加魔法数字校验?我正在尝试插入这样一个校验:
if (OrderGetInteger(ORDER_MAGIC)==EA_Magic) { ..... }.....,但这样做会破坏整个交易.....。
新文章 如何创建自己的追踪止损已发布:
交易人员的基本原则 - 让利润增长,截停损失!本文讨论遵循该原则的其中的一个基本技巧 - 在增加持仓利润后移动保护性止损水平(止损水平),追踪止损水平。我们将给出用于在SAR和NRTR指标上追踪止损的类的分步创建过程。每个人都可以将该追踪止损插入他们的EA交易,或是在帐户中单独使用以控制持仓。
作者:Dmitry Fedoseev