如何编码? - 页 24

 

谢谢你

谢谢你,你是生活的调味品

 
BC Brett:
希望我有答案。

我刚刚写完我的第一个EA,并尝试在Strategy Tester中测试它。

我在ST日志中发现了一些错误,所以我尝试在我的EA中使用打印功能来调试这些问题。到目前为止,我已经用这种方式解决了一些错误,但这是一个缓慢的过程。

在编辑菜单下的元编辑器中存在 "切换断点"......是为了使用断点?

 

仅供参考。

- 关于电子邮件功能的主题(如何编码)https://www.mql5.com/en/forum/174336

- 有一些工具的好文章https://www.mql5.com/en/forum/176053

 

经纪人提供的隐形TP和SL的代码

大家好。

随着经纪人对SL的猎取和扩大点差以避免TP的偏执,我正在寻找关于如何从经纪人那里隐藏TP和SL的信息。

我知道,通过向经纪人提交TP和SL,在你被断开连接的情况下,你的订单是 "安全的"。 虽然远程持有信息,但在失去连接的情况下,有可能出现巨大的损失。

有没有人有一个关于如何使TP和SL不被经纪人发现的EA或代码例子?

谢谢!

迈克

 

这个EA有这个功能

嗨,MikeP

我认为这个EA包含了你所寻找的东西。 如果这是你要找的东西,请给我发邮件,我对这个有另一种想法。

附加的文件:
jlpigrid.mq4  8 kb
 

帮助简化一段代码

你好!

我不是一个专业的编码员(见下文!)。这段代码运行良好,但有可能简化它吗?比如用while/for循环?我希望能有最简单的代码!这段代码非常 "沉重",而且我得到了"内部堆栈 溢出--请简化程序 "的错误!!!这段代码是一个独立的指标。

这是一个单独窗口中的指示器。

在示例代码中,它显示多TF的MA的上升或下降。

谢谢你的帮助。

int start()

{

string MAfast_Trend_1, MAfast_Trend_5, MAfast_Trend_15;

double x;

color color_indic;

// period M1

double FastMA_1_1 = iMA(NULL,PERIOD_M1,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_2_1 = iMA(NULL,PERIOD_M1,FastMAPeriod,0,MAMethod,MAPrice,MAShift+1);

if ((FastMA_1_1 > FastMA_2_1)) { MAfast_Trend_1 = "UP"; x = 256; color_indic = Lime; }

if ((FastMA_1_1 < FastMA_2_1)) { MAfast_Trend_1 = "DOWN"; x = 246; color_indic = Red; }

ObjectCreate("Trend_MAfast_1", OBJ_LABEL, WindowFind("xxxxxxx"), 0, 0);

ObjectSetText("Trend_MAfast_1",MAfast_Trend_1,7, "Verdana", color_indic);

ObjectSet("Trend_MAfast_1", OBJPROP_CORNER, 0);

ObjectSet("Trend_MAfast_1", OBJPROP_XDISTANCE, x);

ObjectSet("Trend_MAfast_1", OBJPROP_YDISTANCE, 22);

// period M5

double FastMA_1_5 = iMA(NULL,PERIOD_M5,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_2_5 = iMA(NULL,PERIOD_M5,FastMAPeriod,0,MAMethod,MAPrice,MAShift+1);

if ((FastMA_1_5 > FastMA_2_5)) { MAfast_Trend_5 = "UP"; x = 256; color_indic = Lime; }

if ((FastMA_1_5 < FastMA_2_5)) { MAfast_Trend_5 = "DOWN"; x = 246; color_indic = Red; }

ObjectCreate("Trend_MAfast_5", OBJ_LABEL, WindowFind("xxxxxxx"), 0, 0);

ObjectSetText("Trend_MAfast_5",MAfast_Trend_5,7, "Verdana", color_indic);

ObjectSet("Trend_MAfast_5", OBJPROP_CORNER, 0);

ObjectSet("Trend_MAfast_5", OBJPROP_XDISTANCE, x);

ObjectSet("Trend_MAfast_5", OBJPROP_YDISTANCE, 37);

// period M15

double FastMA_1_15 = iMA(NULL,PERIOD_M15,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_2_15 = iMA(NULL,PERIOD_M15,FastMAPeriod,0,MAMethod,MAPrice,MAShift+1);

if ((FastMA_1_15 > FastMA_2_15)) { MAfast_Trend_15 = "UP"; x = 256; color_indic = Lime; }

if ((FastMA_1_15 < FastMA_2_15)) { MAfast_Trend_15 = "DOWN"; x = 246; color_indic = Red; }

ObjectCreate("Trend_MAfast_15", OBJ_LABEL, WindowFind("xxxxxxx"), 0, 0);

ObjectSetText("Trend_MAfast_15",MAfast_Trend_15,7, "Verdana", color_indic);

ObjectSet("Trend_MAfast_15", OBJPROP_CORNER, 0);

ObjectSet("Trend_MAfast_15", OBJPROP_XDISTANCE, x);

ObjectSet("Trend_MAfast_15", OBJPROP_YDISTANCE, 52);

etc ...............

return(0);

}
 

代码帮助?每根蜡烛只做一次交易

我正在尝试限制我的EA在每根蜡烛上只做一笔交易。 我发现在价格与趋势相反的情况下,我得到了多次失败的交易,因为指标滞后。

我以前见过这样的代码,但我找不到它。 如果有人能给我指出一个有正确代码的EA或者告诉我它是如何完成的。

它是在UniversalMa ea中完成的,但我在那里不是很清楚。

如果有任何帮助,我将不胜感激。

 

它在这里https://www.mql5.com/en/forum/173026

我正在收集这个主题上的所有功能https://www.mql5.com/en/forum/174329

 

再次感谢

你好,NewDigital,一如既往地感谢你的及时回复。

欢呼声

 

这里有几个简化代码的方法。

函数 代替个别指标值

double FastMA_1_5 = iMA(NULL,PERIOD_M5,FastMAPeriod,0,MAMethod,MAPrice,MAShift) 。

double FastMA_1_15 = iMA(NULL,PERIOD_M15,FastMAPeriod,0,MAMethod,MAPrice,MAShift) 。

.... 变成这样,增加了一个函数

maVal(5,1);

maVal(15,1)。

他们所调用的函数如下。

double maVal(int tf, int shift)

{

return ( iMA(NULL,tf,FastMAPeriod,0,MAMethod,MAPrice,shift) ) 。

}

也可以用一个字符串数组来代替你的其他单个变量,如字符串变量。 数组在循环中可以很好地工作,并且可以简化你的代码,因为你要做的声明比较少。

字符串MAfast_Trend_1, MAfast_Trend_5, MAfast_Trend_15。

.... 变成this.....

string MAfast_Trend [3];

原因: