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

 

几天前,我下载了EA "e-MoveSLTPbyMouse"(感谢Granit),并在Broco交易平台上试用,运行良好。今天我决定用IBFX使用它,看到它没有工作。某种附加线出现了,它从价格上 "反弹",然后市场成功地通过了止损线,我不得不手动平仓,损失不大。对此有什么想法吗?我可以做什么来使我的专家顾问在IBFX工作?或者,也许某人的武器库里有类似的东西?

还有一个问题。我有一个用水平线 开仓的EA,但不幸的是,它只能从设定的价格开仓3-4个点。例如,我在1.4018设置了一条卖出线,1个点的突破(欧元),在1.4015开仓,即滑落了2个点。在英镑方面,它超额完成了3个点。也许有人有类似的EA,但它会正常工作。我将非常感激。

我把这个EA贴出来,也许有人会需要它。

附加的文件:
 

各位专家,我想在我的专家顾问中使用一个图表上的滑动指标。

如果我将滑动指标手动附加到图表上,参数Apply to 可以写成以前的指标数据,但我应该如何在我的EA中这样做?

我认为应用OnArray 函数是合乎逻辑的,但我不知道从哪里获取带有第一个МА数据的数组。

例如,我需要:如果第一个МА(21)高于第二个MA(21)(建立在第一个MA上),那么..................。

还有一个问题:如果我的专家顾问有以下函数调用:iMA(0,0,250,0,1,0,0),那么每一个刻度都会把这250个条形收盘,加起来再除以250?然而,事实并非如此。而如果我再使用一个滑杆,价格就会下降......。请澄清一下。



 
mukata писал(а)>>

各位专家,我想在我的专家顾问中使用一个图表上的滑动指标。

如果我将滑动指标手动附加到图表上,参数Apply to 可以写成以前的指标数据,但我应该如何在我的EA中这样做?

我认为iMAOnArray 函数是有意义的,但我不知道从哪里取用第一个MA的数据的数组,请指点我,或提供这样一个结构的链接,或结构本身,如果它存在的话。

例如,我需要:如果第一个МА(21)高于第二个MA(21)(建立在第一个MA上),那么..................。

还有一个问题:如果我的专家顾问有以下函数调用:iMA(0,0,250,0,1,0,0),那么每一个刻度都会把这250个条形收盘,加起来再除以250?然而,事实并非如此。而如果我再使用一个滑杆,价格就会下降......。请解释一下。

制作一个指标的最简单方法。

 
Vinin >> :

最简单的事情就是做一个指标。

让我们做一个指标,我们从哪里获得数据阵列?给我一个关于结构的提示,教科书上没有...

第二个问题呢?

 
mukata писал(а)>>

让我们有一个指标,我们从哪里获得数据阵列?请给我一个关于结构的提示,教科书上没有...

第二个问题呢?

关于第二个问题。这完全取决于执行情况。你可以通过优化代码来自己计算该指标。你可以只计算酒吧的开口。有很多变种。

但最好的选择是使用指标。在其中进行所有的计算,专家顾问读取它们(计算值)。

下面是一个指标的例子

我改变了指标

附加的文件:
 
Vinin >> :

关于第二个问题。这完全取决于执行情况。你可以通过优化代码来进行自己的计算。你可以只按酒吧的开放程度来计算。有很多变种。

但最好的选择是使用指标。在其中进行所有的计算,并由专家顾问读取它们(计算值)。

1) "你可以自己通过优化代码来计算工具" - 我不明白这句话。我的理解是:在每一个刻度线上都会被调用,如果有函数iMA(0,0,250,0,1,0,0)的调用,那么每次都会对这250条进行加法和除法。而如果我们正确地创建指标,它将只计算最后一个条形,最后一个移位参数将从数组中读取。对吗?

2)你从哪里获得阵列来创建第二个MA?

 
mukata >> :

2) 我在哪里可以得到一个用于计算第二个MA的数组?


对了!我忘了,该指标创建了一个MA值的数组...

非常感谢你。

 
mukata писал(а)>>

1) "你可以通过优化代码自己计算机器" - 我不明白这句话。我的理解是:在每一个刻度线上都会被调用,如果有函数iMA(0,0,250,0,1,0,0)的调用,它每次都会对这250条进行加法和除法。而如果我们正确地创建指标,它将只计算最后一个条形,最后一个移位 参数将从数组中读取。对吗?

2) 我们在哪里可以得到一个数组来创建第二个MA?

1.这完全取决于执行情况。有最佳的计算方法。iMa()使用它自己的计算算法。CodeBase有它们。因此,当你使用它时,计算机制的工作是隐蔽的。你只能得到结果。而计算将在每一个刻度上进行。

2.我做这个指标是为了帮助你理解数组。

 
Vinin >> :

1.这完全取决于执行情况。有最佳的计算方法。iMa()使用它自己的计算算法。CodeBase有它们。因此,当你使用它时,计算机制的工作是隐蔽的。你只能得到结果。而计算将在每一个刻度上进行。

2.我专门做了这个指标来帮助你理解数组。

非常感谢你的指标,我看了一下启动功能,一切一下子就明白了。

关于第一个问题。

例如,在我的专家顾问(不是MA,也是一个内置功能)。

//пересекла ли главная линия стохастика сигнальную линию сверху вниз
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,shiftF)>
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,shiftF)&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)
){
//и обе линии ниже 90
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<90&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)<90
){
//и выше 50
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)>50&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)>50
)
fl=1;return(fl);//продать
}
}

是不是每一行都要计算?

或者应该写一个指标,从其数组中取值并进行比较,或者其他什么。为了让它更快地工作。

 
mukata писал(а)>>

非常感谢你的指标,看了一下启动功能,一切一下子就明白了。

关于第一个问题。

以我的EA为例(不是MA,但也是一个内置功能)。

//пересекла ли главная линия стохастика сигнальную линию сверху вниз
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,shiftF)>
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,shiftF)&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)
)

它是否要在每一行都计算它?

或者我应该写一个指标,从其数组中取值并进行比较,或者其他什么。这样它就能更快地工作。

首先,最好计算一下随机指数和信号线的数值。然后再进行比较。我根本不喜欢这种风格。它导致了某种盲目性。而且更容易犯错。

元引号变体中的If()对逻辑表达式进行全面计算。最好是尽可能的简单化。只是if()是最慢的操作之一。

也有这样一个概念,即在零杆上的 "颤动"。可能会有这样的情况:信号会在一个小节上重复出现不止一次。而且它甚至可能无法锁定。这是个错误的信号。这就是为什么我们试图从成型的条形图中取值。但在这种情况下,我们应该使用开盘价。但可能还有其他的变种。

原因: