[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 950

 
帮助我在指标上添加水平线,使之成为一个通道
附加的文件:
hp_1.mq4  3 kb
 
smogsam:

大家好!

我有这样一个问题:我无法弄清楚趋势魔力指标的情况。我把它附在我的专家顾问上,但我不能从它那里得到正确的交易条件。

MA_1_1=iCustom(NULL,0, "TrendMagic",CCPeriod,ATRPeriod,0,0); // 蓝色

MA_2=iCustom(NULL,0, "TrendMagic",CCPeriod,ATRPeriod,1,0); // Red

我已经绞尽脑汁了。

订单关闭时有延迟,或打开时有延迟,但一切运作正常。我一点也不明白。也许指标的工作方式不正确。指标线颜色变化的进入-退出条件的正确写法是什么?

请告知如何做到这一点。


代码被反编译。删除的帖子
 
smogsam:

大家好!

我有这样一个问题:我无法弄清楚趋势魔力指标的情况。我把它附在我的专家顾问上,但我不能从它那里得到正确的交易条件。

我已经绞尽脑汁了。

我有一个延迟的订单关闭和一个延迟的订单打开,但一切都在正常工作。我不明白我在努力做什么。也许指标的工作方式是错误的。如何正确书写指标线颜色变化的进入/退出条件?

请告知。

代码被反编译。删帖。提交了一份禁令
 
smogsam:

大家好!

我有这样一个问题:我无法弄清楚趋势魔力指标的情况。我把它附在我的专家顾问上,但我不能从它那里得到正确的交易条件。

我已经绞尽脑汁了。

我有一个延迟的订单关闭和一个延迟的订单打开,但一切都在正常工作。我不明白我在努力做什么。也许指标的工作方式是错误的。如何正确书写指标线颜色变化的进入/退出条件?

请告诉我。
根据所有迹象,这是一只正在崛起的火鸡。历史上的信号是非常美丽的。我建议你在分钟上实时关注这个指标。最有可能的是,根据当前的信号,该指标的历史曲线将被重新绘制。
 
Stepan241:
就所有意图和目的而言,它是一只崛起的火鸡。历史上的信号是非常美丽的。我建议你在分钟上实时关注这个指标。最有可能的是,根据当前的信号,该指标的历史曲线将被重新绘制。

我不这么认为。如果你是这个意思,它不会改变信号。我甚至不知道它取决于什么。信号要么是正确的,要么是滞后了1个柱子。


我可以比较线条的颜色而不是指标的计算结果吗?如何摆脱这种情况?有什么我可以做的事情可以让它变好吗?

 
artmedia70:

我的理解是,从这个特定的停止锁定的位置,用一张特定的票,如果这个位置是停止锁定的,你需要向对面开一次。对吗?

然后记住你已经在相反方向打开的姿势的票,把票和我写的其他支票一起检查。如果对面的姿势已经从这个票的位置打开了,就不要再打开了。


确切地说,这就是我描述的这个逻辑,有票,所以有票,我不明白如何在代码中更好地实现它。除了阵列之外,我没有想到什么。感谢那些回应的人。
 

你好。

你能告诉我如何使EA根据之前的交易结果来改变手数吗?

例如,如果之前的交易是亏损的,那么下一笔交易将是lot-A,如果是盈利的,那么lot=lot+B,其中A和B是常数,类似这样。

也许可以用天平来做,但我自己也搞不清楚 :-(

或者也许有另一条出路.....

 
chum:

你好。

你能告诉我如何使EA根据之前的交易结果来改变手数吗?

例如,如果之前的交易是亏损的,那么下一笔交易将是lot-A,如果是盈利的,那么lot=lot+B,其中A和B是常数,类似这样。

也许可以用天平来做,但我自己也搞不清楚 :-(

或者也许有另一条出路.....

有一次,我写了一个程序,返回最后一笔交易的利润/损失。在这里,它是。有人已经使用了它。如果有必要,自己添加MAGIC。

//Function Last trade profit------------------------------------------------------------------------------------------------------------------------
double _OldProfit()
{
for(int i=OrdersHistoryTotal()-1;i>=0;i--) //lists all orders for all currencies
{
if (OrderSelect(i,SELECT_BY_POS, MODE_HISTORY)==true) //if an order is successfully selected
{
if (OrderSymbol(!)
=Symbol())继续;//如果选择的订单 不是同一货币,继续搜索
{
double Ord_Profit=OrderProfit();
break;
}
}
return(Ord_Profit);
}

 
你能告诉我如何使EA代码不是每一个tick都 被执行,而是每一个新的bar都被执行。提前感谢!
 
pr0fess0r64:
你能建议如何使EA代码不是每一个tick都被执行,而是每一个新的bar都被执行。提前感谢您!

这是《START》开头描述的标准程序。按BAR的数量执行


bool isNewBar=false。

int ExpertBars;

如果(ExpertBars !=Bars){ExpertBars=Bars; isNewBar=true; }

如果 (isNewBar)

{
你的程序代码
}

意思应该很清楚。各种各样的修改都是可能的。

这里有另一个关于TIME的实施方案

如果(Time[0] == prevtime)返回(0)。
prevtime = Time[0];

原因: