新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 253

 
Ibragim Dzhanaev:

你能告诉我,为什么每次打勾 都会触发拖网?

我们必须用买入价比较买入头寸的止盈和止损,用卖出价比较卖出头寸的止损。

这是其被触发的价格。

所以要这样试一试。
 if(OrderOpenPrice()+(trail_p*Point)<Ask && OrderStopLoss()+(trail_p*Point)<Bid )
if(OrderOpenPrice()-(trail_p*Point)>Bid && OrderStopLoss()-(trail_p*Point)>Ask )
 
Ibragim Dzhanaev:

你能告诉我,为什么每次打勾 都会触发拖网?

拖网模板。就在同一个分支。

 
Ivan Ivanov:

有必要将买入头寸的获利和止损与买入价进行比较,将卖出头寸的获利和止损与卖出价进行比较。

这些是它们被触发的价格。

换句话说,试试这个。

什么都没有改变。

 
Artyom Trishkin:

拖网模板。就在同一条线上。


谢谢你。

 
Artyom Trishkin:

路径模板。就在同一个分支。


double sl=NormalizeDouble(level_of_trail-trailing_stop*point,digits);//按数值计算新的止损水平

为什么你的点和数字要用小字写?


 
Ibragim Dzhanaev:

double sl=NormalizeDouble(level_of_trail-trailing_stop*point,digits);//按数值计算新的止损水平

为什么你的点和数字要用小字写?


因为代码被优化,变量在模板中被初始化一次,而不是在每个地方被初始化100次

            int    digits=(int)SymbolInfoInteger(symbol_name,SYMBOL_DIGITS);
            double point=(SymbolInfoDouble(symbol_name,SYMBOL_POINT));
 
Ibragim Dzhanaev:

double sl=NormalizeDouble(level_of_trail-trailing_stop*point,digits);//按数值计算新的止损水平

为什么你的点和数字要用小字写?


因为它们是在这个函数里面声明的--这个线索模板对函数参数中传递的任何字符都有效,而不是像你想象的那样,只对当前字符有效。

 
Vitaly Muzichenko:

因为代码被优化了,变量在模板中被初始化一次,而不是在每个地方被初始化100次。

顺便说一下,我没有考虑到那里的优化问题。当然,有可能对其进行优化。
 

建议如何从终端拉出某一天的报价(开盘,收盘,最大,最小)到我写的程序(C++),并进行最终计算,而不返回新的信息到终端指标,顾问等,只是按日期拉出报价到我的程序? 提前感谢

 
виталик:

建议如何从终端拉出某一天的报价(开盘,收盘,最大,最小)到我写的程序(C++),并进行最终计算,而不返回新的信息到终端指标,顾问等,只是按日期拉出报价到我的程序? 提前感谢

通过一个文件,例如