编码帮助 - 页 178

 

需要帮助编写EA代码 ->10%的利润/月

大家好,我有一个非常简单的策略,似乎很安全,而且有很好的收益,但是用手操作起来非常累人。这就是为什么我希望有人能帮我编码,以便既省力又能24小时交易。这个策略其实很简单:在当前价格上下400点处设置买入止损和卖出止损。线与线之间的距离可以从外部选择,也可以选择TP(点)和Lots(从0.01开始)。SL是可选的,也是外部的。该系统一直工作到达到总的目标利润(也是外部)。在这一点上,程序会卖掉所有的东西,取消所有的挂单,然后从头开始工作。正如我所说,它非常简单。纯粹的数学,没有落伍者(指标)。通过这个策略,我每个月都有10%左右的利润,这取决于市场条件和资金管理。从长期来看,这是一个非常安全的赌注,但手动执行起来真的很累。我使用的是欧元兑美元,但如果可能的话,能够同时交易几个货币对将是一个加分项,只是为了多样化(尽管考虑到我到目前为止的结果,并没有真正的必要)。

 

有没有人可以帮助我,我做了一个这样的代码。

double ccia = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

double ccib = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,1);

int 趋势。

如果(cia>ccib&&ccia<=-150) Trend=0。

如果(cia=150)Trend=1。

我希望代码中的Trend值只在条件发生变化时才发生变化。所以当条件发生变化时,Trend值=0只会被第二个IF改变。

但为什么我总是得到一个0(零)的趋势值。

 
Q_Mouze:
有没有人可以帮助我,我做了一个这样的代码。

double ccia = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

double ccib = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,1);

int 趋势。

如果(cia>ccib&&ccia<=-150) Trend=0。

如果(cia=150)Trend=1。

为什么我总是得到0(零)的值,而趋势的值。

把它改成这样(以避免在没有满足条件时有相同的值)。

double ccia = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

double ccib = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,1);

int Trend=-1;

if (ccia>ccib&&ccia<=-150) Trend=0;

if (ccia=150) Trend=1;

此刻CADCHF显示的数值与默认的-1不同。

 
mladen:
把它改成这样(以避免在没有满足条件时有相同的值)。
double ccia = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

double ccib = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,1);

int Trend=-1;

if (ccia>ccib&&ccia<=-150) Trend=0;

if (ccia=150) Trend=1;
在某一时刻,CADCHF显示的值与默认的-1不同。

谢谢mladen,但是

double CCIA = ICCI (Symbol (), PERIOD_H1, 14, PRICE_CLOSE, 0);

double CCIB = ICCI (Symbol (), PERIOD_H1, 14, PRICE_CLOSE, 1);

趋向性指数。

如果(CCIA> CCIB CCIA && condition 1)

如果(CCIA = 150) Trend = 1; =====> condition 2

我想要的代码是,如果条件1,趋势值将被改变为0,这个条件将保持到2个条件发生,将改变趋势值为1。

但这种情况发生时,趋势值始终为0,只有在条件2时才会改变,当cci值通过或低于100值时,趋势又会改变为0。

 
Q_Mouze:
谢谢mladen,但是

double CCIA = ICCI (Symbol (), PERIOD_H1, 14, PRICE_CLOSE, 0);

double CCIB = ICCI (Symbol (), PERIOD_H1, 14, PRICE_CLOSE, 1);

趋向性指数。

如果(CCIA> CCIB CCIA && condition 1)

如果(CCIA = 150) Trend = 1; =====> condition 2

我想要的代码中,如果条件1的趋势值将被改变为0,这个条件将保持到2个条件发生,将改变趋势值为1。

但这种情况发生了 趋势值始终为0,只有在条件2中,当cci值通过或低于100时,趋势值才会再次变为0。

Q_Mouze

要做到这一点,一个解决方案是使用一个静态变量来代替趋势。

然后,代码将是以下内容。

double ccia = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

double ccib = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,1);

static int Trend=-1;

if (ccia>ccib&&ccia<=-150) Trend=0;

if (ccia=150) Trend=1;

在这种情况下,只有在第一次执行代码时才会发生对-1的分配。此后,当新的ticks出现时,Trend值将 "继承 "前一个tick,这就是你要找的。

_____________________

如果你想在历史值上这样做(像一个指标),那么你需要将趋势声明为一个缓冲区,然后你也可以对过去的值这样做。

 

所有的好日子。

请帮助。

以及将从指标DSS Bressert + ahtf_(FILTER)看信号?

这样做。

//---------------------------

double aTrend[2];

aTrend[0] =iCustom(NULL, 0, "DSS Bressert + ahtf_(FILTER)", 6, 0) 。

aTrend[1] =iCustom(NULL, 0, "DSS Bressert + ahtf_(FILTER)", 6, 1)。

如果(aTrend[1] < aTrend[0])//买入

{

现在的蓝色垂直线

}

如果(aTrend[1] > aTrend[0]) // 卖出

{

现在是红色的垂直线

}

//---------------------------------

在接受信号方面有很大困难。请帮助。

我很抱歉我的英语.

谢谢你。

图片并附上指标。

附加的文件:
 
shtopr:
所有的好日子。

请帮助。

以及将从指标DSS Bressert + ahtf_(FILTER)看信号?

这样做。

//---------------------------

double aTrend[2];

aTrend[0] =iCustom(NULL, 0, "DSS Bressert + ahtf_(FILTER)", 6, 0) 。

aTrend[1] =iCustom(NULL, 0, "DSS Bressert + ahtf_(FILTER)", 6, 1)。

如果(aTrend[1] < aTrend[0])//买入

{

现在的蓝色垂直线

}

如果(aTrend[1] > aTrend[0]) // 卖出

{

现在是红色的垂直线

}

//---------------------------------

在接受信号方面有很大困难。请帮助。

我很抱歉我的英语.

谢谢你。

图片并附上指标。

要想知道什么时候有信号,请关闭插值功能。

另外,使用缓冲区6来查看。当它为1时,是趋势上升,当它为-1时,是趋势下降,当当前趋势!=前一个趋势时,趋势发生了变化,有了信号

 
mladen:
要想知道信号是什么时候打开的,请关闭插值功能,也可以用缓冲区6来查看。当它为1时,是趋势上升,当它为-1时,是趋势下降,当当前趋势!=前一个趋势时,有一个趋势变化,有一个信号。

我没有得到()。

求你了。

如果这是可能的.

显示代码。

谢谢你。

P.S。

对不起,我翻译错了

 
shtopr:
我没有得到((.

拜托了。

如果可以的话...

显示代码。

谢谢你。

P.S.

对不起,我的翻译

在你的图片上,你显示的是1小时图和日线指标值。

在iCustom()调用中,你使用的是当前的时间 框架。如果你想使用每日的时间框架,你必须在iCustom()调用中指定它(否则永远不会相同)。

另外,你使用的是一个开放性条形图调用。如果你打算使用EA的多时间框架调用,那么你应该知道,在回测中使用一个已打开的多时间框架条将会得到无效的结果(它将永远 "知道未来"),所以如果你打算使用多时间框架,你不应该使用已打开的条调用。

 

你好mladen。

你能帮助把这两个指数分别转换为rsi版本吗?我尝试过,但不知道怎么做,即kairi的rsi,cci的rsi? 非常感谢您的帮助。

附加的文件:
cci.mq4  4 kb
kairi.mq4  8 kb