通用MA交叉EA - 页 105

 

谢谢Blaiserboy。

mincrossdistance肯定会给出一个隐约相似的结果,无论如何都会显示确认。我将做一些测试,非常感谢。

 

亲爱的Mrtools/Mladen

你能不能把最大距离参数设置 为一个条形图的收盘价与慢牛的距离?

目前的设置是没有意义的,我认为

谢谢

萨钦

 
sachin_syd:
亲爱的Mrtools/Mladen

你能不能把最大距离参数设置为一个条形图的收盘价与慢牛的距离?

目前的设置是没有意义的,我认为

谢谢

Sachin

Sachin

只需找到这样的线。

MaxDistance = MathFloor(MathAbs((FastMACurrent-lowMACurrent)/pPoint))。

把FastMACurrent替换成Close[1](用于第一个闭合条的收盘)或Close[0](用于仍然打开的条的收盘)。

 

好的,我现在已经做了测试......谢谢

你能不能也协助一下:https://www.mql5.com/en/forum/general

mladen:
Sachin

只要找到这样的一句话就可以了。

MaxDistance = MathFloor(MathAbs((FastMACurrent-lowMACurrent)/pPoint))。

将FastMACurrent替换为Close[1](用于第一个闭合柱的收盘)或Close[0](用于仍然打开的柱的收盘)。
 

亲爱的Mladen,你能不能检查一下为什么时间过滤器不工作......在图表上看到红色的垂直线,它不应该交易的地方却交易了。在Ea中,我只设置了某些时段的交易。谢谢

mladen:
Sachin

只要找到这样的线就可以了。

MaxDistance = MathFloor(MathAbs((FastMACurrent-lowMACurrent)/pPoint))。

将FastMACurrent替换为Close[1](用于第一个闭合条的收盘价)或Close[0](用于仍然打开的条的收盘价)。
附加的文件:
untitled.png  28 kb
untitled_1.png  29 kb
 

Hi Mladen,

我无法编译mql4代码,因为有以下错误。

extern string Pivot.Setting = "---------- Pivot Filter Setting";

extern bool Use.Pivot.Filter = false;

==>'.' - 预计分号 MACrossEAV1.5.mq4 77 28 if(Use.Pivot.Filter==true)

==>'Use' - 未声明的标识符 MACrossEAV1.5.mq4 458 7

'Pivot' - 预期的结构或类别类型 MACrossEAV1.5.mq4 458 11

过滤器"--结构或类的类型,预计为MACrossEAV1.5.mq4 458 17

我做错了什么?

谢谢你的帮助

 
StephFX:
嗨,Mladen。

我无法编译mql4代码,因为有以下错误。

extern string Pivot.Setting = "---------- Pivot Filter Setting";

extern bool Use.Pivot.Filter = false;

==>'.' - 预计分号 MACrossEAV1.5.mq4 77 28 if(Use.Pivot.Filter==true)

==>'Use' - 未声明的标识符 MACrossEAV1.5.mq4 458 7

'Pivot' - 预期的结构或类别类型 MACrossEAV1.5.mq4 458 11

过滤器"--结构或类的类型,预计为MACrossEAV1.5.mq4 458 17

我做错了什么?

谢谢你的帮助

StephFX

删除 变量名称中的"."。

你可以用"_"来代替,例如,你就会有:

extern string Pivot_Setting = "---------- Pivot Filter Setting";

extern bool Use_Pivot_Filter = false。

和这个

if(Use_Pivot_Filter=true)

然后所有的编译都会顺利进行

 

大家好。

由于我正在尝试一个马丁格尔策略,我试着让 "止损和反转 "只在最后一笔交易是赢家时才起作用。

int histotal=OrdersHistoryTotal(); if (histotal>0)

{

for(int count=histotal-1;count>=0;count--)

{

if(OrderSelect(count,SELECT_BY_POS,MODE_HISTORY))

{

如果(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)

{

如果(OrderProfit()>0)

{

如果(StopAndReverse==true &&subTotalTrade()>0)

{

if((LastTrade=="BUY" && SellCondition==true) || (LastTrade=="SELL" && BuyCondition==true))

{

subCloseOrder();

如果(subTotalTrade()>0) subCloseOrder();

如果(subTotalTrade()>0) subCloseOrder();

if(IsTesting() && PrintControl==true) Print("STOP AND REVERSE !");

}

}

}

}

}

}

}

然而,这似乎并不奏效。即使最后一笔交易是亏损的,它也会停止并逆转。有什么建议吗?

谢谢!

 
BlackCoq:
大家好。

由于我正在尝试马丁格尔策略,我试图使 "止损和反转 "只在最后一笔交易是赢家的情况下发挥作用。

然而,这似乎并不奏效。即使最后一笔交易是亏损的,它也会停止和扭转。有什么建议吗?

谢谢!

你没有检查 订单的时间。你也必须检查订单的收盘时间,收盘时间最长的订单才是你要检查的利润。

 
mladen:
你没有检查订单的时间。你也必须检查订单的收盘时间,收盘时间最长的订单才是你要检查的利润。

问题是,我在马丁格尔系统中使用了非常类似的代码,效果非常好。

//|---------martingale

int martingalefactor()

{

int histotal=OrdersHistoryTotal();

如果(histotal>0)

{

for(int cnt=histotal-1;cnt>=0;cnt--)

{

如果(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))

{

如果(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)

{

如果(OrderProfit()<0)

{

lotsfactor=lotsfactor*multiplier;

return(lotfactor);

}

否则

{

lotsfactor=initiallotsfactor;

如果(lotfactor<=0)

{

lotsfactor=1。

}

return(lotfactor);

}

}

}

}

}

return(lotfactor)。

}

既然它对马丁格尔有效,那么现在不也应该有效吗?

原因: