编码帮助 - 页 100 1...93949596979899100101102103104105106107...786 新评论 Mladen Rakic 2013.06.20 14:06 #991 dasssi: 毫升登首先我希望你不要再对我生气了...... 其次,我在加载EA时出现了错误。 dasssi 试着给EA重命名(由于名称中的法国字母,它可能会给你带来问题--没有其他问题会是这个原因,因为它是一个非常简单的EA) [删除] 2013.06.20 14:21 #992 谢谢,现在可以工作了/。 在策略测试器上 看起来不是很好 Mladen Rakic 2013.06.20 14:24 #993 dasssi: 谢谢,它现在可以工作了/在策略测试器上看起来不怎么样 这只是一个例子,当涉及到信号时,指标应该如何从EA中调用。它远不是一个完整的EA(看看精英和高级部分的新EA并比较代码--你会明白我的意思)。所以,这只是帮助After-rage解决他的编码问题。 [删除] 2013.06.20 14:28 #994 谢谢你!!它对输入头寸的工作很好。我不知道为什么我的EA不工作,但这并不重要。所以我尝试添加代码 来关闭订单,但它也不起作用。很奇怪,因为我采用了类似于进场的结构代码,我只是将手的数量增加了一倍。你能看一下吗? 附加的文件: renome_1.04.mq4 2 kb Mladen Rakic 2013.06.20 15:19 #995 After-rage: 谢谢你!它对输入头寸的工作很好。我不知道为什么我的EA不工作,但这并不重要。所以我尝试添加代码来关闭订单,但它也不起作用。很奇怪,因为我采用了类似于进场的结构代码,我只是将手的数量增加了一倍。你能看一下吗? 愤怒之后 你可以这样做(当信号改变时关闭已开的订单),现在的代码中就有这样的方法 附加的文件: renome_1.04_1.mq4 2 kb [删除] 2013.06.20 15:29 #996 非常感谢您!这款产品非常好用。它工作得非常好。我将继续努力,看看为什么我错了。 AtApi 2013.06.21 22:45 #997 有人知道是否可以通过代码来改变执行时间的指标设置吗? 例如,我想有一个CCI,其周期等于ATR,所以当ATR改变时,CCI的周期 也会改变,就像在每个新的条形图上启动指标。问题是,我不知道如何通过代码重新启动指标。我已经尝试在新条形图打开时调用init(),并且周期变化正确,但指标不会刷新...最后一个条形图的值是正确的,但我希望整个指标重新显示为新的设置。 Mladen Rakic 2013.06.22 02:51 #998 AtApi: 有谁知道是否可以通过代码改变执行时间的指标设置? 例如,我想有一个CCI,其周期等于ATR,所以当ATR改变时,CCI周期也会改变。问题是,我不知道如何通过代码重新启动指标。我已经尝试在新条形图打开时调用init(),并且周期变化正确,但指标不会刷新...最后一个条形图的值是正确的,但我希望整个指标重新显示为新的设置。 如果你想重新绘制整个indi值,只需在开始时将主循环计数设置为Bars-1,然后用新的设置计算值。 AtApi 2013.06.22 14:27 #999 感谢mladen的快速回答...... 请看一下这个例子。 extern int IndicatorPeriod = 10; extern int AtrPeriod= 10; extern bool DynamicPeriod = TRUE; int init() { if (DynamicPeriod) { double atr = NormalizeDouble(100*iATR(0,0,AtrPeriod,0),0); IndicatorPeriod = atr; } } int start() { datetime lastBarOpenTime; datetime thisBarOpenTime = Time[0]; if (DynamicPeriod) { if(thisBarOpenTime != lastBarOpenTime) { lastBarOpenTime = thisBarOpenTime; init(); } } int i,counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; // is this what you are talking about? int limit=MathMin(Bars-counted_bars,Bars-1); for(i=limit; i>=0; i--) //MAIN LOOP { wherever calculation } } Coding help Multi Timeframe Indicators 多时间框架指标 Mladen Rakic 2013.06.22 14:31 #1000 AtApi: 感谢mladen的快速回答...请看一下这个例子。 extern int IndicatorPeriod = 10; extern int AtrPeriod= 10; extern bool DynamicPeriod = TRUE; int init() { if (DynamicPeriod) { double atr = NormalizeDouble(100*iATR(0,0,AtrPeriod,0),0); IndicatorPeriod = atr; } } int start() { datetime lastBarOpenTime; datetime thisBarOpenTime = Time[0]; if (DynamicPeriod) { if(thisBarOpenTime != lastBarOpenTime) { lastBarOpenTime = thisBarOpenTime; init(); } } int i,counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; // is this what you are talking about? int limit=MathMin(Bars-counted_bars,Bars-1); for(i=limit; i>=0; i--) //MAIN LOOP { wherever calculation } } AtApi 如果你想把数值保存到缓冲区(该条形的每个确切时间的一个数值),那么是的,这是正确的方法。但是,如果你想让所有的条形图都被 "重绘",那么就把linit设置为永远等于Bars-1。 1...93949596979899100101102103104105106107...786 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
毫升登
首先我希望你不要再对我生气了......
其次,我在加载EA时出现了错误。dasssi
试着给EA重命名(由于名称中的法国字母,它可能会给你带来问题--没有其他问题会是这个原因,因为它是一个非常简单的EA)
谢谢,现在可以工作了/。
在策略测试器上 看起来不是很好
谢谢,它现在可以工作了/在策略测试器上看起来不怎么样
这只是一个例子,当涉及到信号时,指标应该如何从EA中调用。它远不是一个完整的EA(看看精英和高级部分的新EA并比较代码--你会明白我的意思)。所以,这只是帮助After-rage解决他的编码问题。
谢谢你!!它对输入头寸的工作很好。我不知道为什么我的EA不工作,但这并不重要。所以我尝试添加代码 来关闭订单,但它也不起作用。很奇怪,因为我采用了类似于进场的结构代码,我只是将手的数量增加了一倍。你能看一下吗?
谢谢你!它对输入头寸的工作很好。我不知道为什么我的EA不工作,但这并不重要。所以我尝试添加代码来关闭订单,但它也不起作用。很奇怪,因为我采用了类似于进场的结构代码,我只是将手的数量增加了一倍。你能看一下吗?
愤怒之后
你可以这样做(当信号改变时关闭已开的订单),现在的代码中就有这样的方法
非常感谢您!这款产品非常好用。它工作得非常好。我将继续努力,看看为什么我错了。
有人知道是否可以通过代码来改变执行时间的指标设置吗? 例如,我想有一个CCI,其周期等于ATR,所以当ATR改变时,CCI的周期 也会改变,就像在每个新的条形图上启动指标。问题是,我不知道如何通过代码重新启动指标。我已经尝试在新条形图打开时调用init(),并且周期变化正确,但指标不会刷新...最后一个条形图的值是正确的,但我希望整个指标重新显示为新的设置。
有谁知道是否可以通过代码改变执行时间的指标设置? 例如,我想有一个CCI,其周期等于ATR,所以当ATR改变时,CCI周期也会改变。问题是,我不知道如何通过代码重新启动指标。我已经尝试在新条形图打开时调用init(),并且周期变化正确,但指标不会刷新...最后一个条形图的值是正确的,但我希望整个指标重新显示为新的设置。
如果你想重新绘制整个indi值,只需在开始时将主循环计数设置为Bars-1,然后用新的设置计算值。
感谢mladen的快速回答......
请看一下这个例子。
extern int IndicatorPeriod = 10;
extern int AtrPeriod= 10;
extern bool DynamicPeriod = TRUE;
int init()
{
if (DynamicPeriod)
{
double atr = NormalizeDouble(100*iATR(0,0,AtrPeriod,0),0);
IndicatorPeriod = atr;
}
}
int start()
{
datetime lastBarOpenTime;
datetime thisBarOpenTime = Time[0];
if (DynamicPeriod)
{
if(thisBarOpenTime != lastBarOpenTime)
{
lastBarOpenTime = thisBarOpenTime;
init();
}
}
int i,counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
// is this what you are talking about?
int limit=MathMin(Bars-counted_bars,Bars-1);
for(i=limit; i>=0; i--) //MAIN LOOP
{
wherever calculation
}
}
感谢mladen的快速回答...
请看一下这个例子。
extern int IndicatorPeriod = 10;
extern int AtrPeriod= 10;
extern bool DynamicPeriod = TRUE;
int init()
{
if (DynamicPeriod)
{
double atr = NormalizeDouble(100*iATR(0,0,AtrPeriod,0),0);
IndicatorPeriod = atr;
}
}
int start()
{
datetime lastBarOpenTime;
datetime thisBarOpenTime = Time[0];
if (DynamicPeriod)
{
if(thisBarOpenTime != lastBarOpenTime)
{
lastBarOpenTime = thisBarOpenTime;
init();
}
}
int i,counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
// is this what you are talking about?
int limit=MathMin(Bars-counted_bars,Bars-1);
for(i=limit; i>=0; i--) //MAIN LOOP
{
wherever calculation
}
}
AtApi
如果你想把数值保存到缓冲区(该条形的每个确切时间的一个数值),那么是的,这是正确的方法。但是,如果你想让所有的条形图都被 "重绘",那么就把linit设置为永远等于Bars-1。