如何编码? - 页 70

 

需要帮助

................

 
SIDDESH:
你好。

能否请您提供前一栏的代码。

这可以在EA中使用,当前一个条形图超过一定高度时限制下单。

请注意。

尊敬的女士们、先生们,你们好!我是SIDDESH。

Siddesh和其他能提供帮助的人。

前一栏的代码如下。

//买入

double indicatorpast = icustom(....................,1);

double indicatornow = icustom(....................,0);

如果(close[1]indicatornow)OpenBUY()。

如果(close[1]>indicatorpast && close[0]<indicatornow)OpenSELL()。

但在这种情况下,专家不仅在价格越过指标时开仓,而且还在指标之上开仓。我希望专家只在价格越过指标时开仓,所以我试着这样做。

//买入

double indicatorpast = icustom(....................,1);

double indicatornow = icustom(....................,0);

如果(close[1]<indicatorpast && close[0]==indicatornow)OpenBUY()。

如果(close[1]>indicatorpast && close[0]==indicatornow)OpenSELL()。

但是这个语句没有执行。

你知道发生了什么吗?因为我认为语句中没有错误。

问题是,当close[0]== Indicatornow时,为什么没有在准确的交叉点开仓?如果函数==,我们将防止在指标和本栏收盘之间的交叉点以上开仓,但在变量之间的这种关系下,没有发挥作用。

 

可以帮助的人。

前面一栏的代码如下。

//要买入

double indicatorpast = icustom(....................,1);

double indicatornow = icustom(....................,0);

如果(close[1]indicatornow)OpenBUY()。

如果(close[1]>indicatorpast && close[0]<indicatornow)OpenSELL()。

但在这种情况下,专家不仅在价格越过指标时开仓,而且还在指标之上开仓。我希望专家只在价格越过指标时开仓,所以我试着这样做。

//买入

double indicatorpast = icustom(....................,1);

double indicatornow = icustom(....................,0);

如果(close[1]<indicatorpast && close[0]== indicatornow)OpenBUY()。

如果(close[1]>indicatorpast && close[0]== indicatornow)OpenSELL()。

但是这个语句没有执行。

你知道发生了什么吗?因为我认为语句中没有错误。

问题是,当close[0]== Indicatornow时,为什么没有在准确的交叉点开仓?如果函数==,我们将防止在指标和当前条形图的收盘价之间的交叉点以上开仓,但在变量之间的这种关系下却不起作用。

你有没有试验过同样的问题?有谁知道如何解决这个问题?

谢谢,再次感谢。

 
la totona:
可以帮助的人。

前一栏的代码如下。

//要买入

double indicatorpast = icustom(....................,1);

double indicatornow = icustom(....................,0);

如果(close[1]indicatornow)OpenBUY()。

如果(close[1]>indicatorpast && close[0]<indicatornow)OpenSELL()。

但在这种情况下,专家不仅在价格越过指标时开仓,而且还在指标之上开仓。我希望专家只在价格越过指标时开仓,所以我试着这样做。

//买入

double indicatorpast = icustom(....................,1);

double indicatornow = icustom(....................,0);

如果(close[1]<indicatorpast && close[0]== indicatornow)OpenBUY()。

如果(close[1]>indicatorpast && close[0]== indicatornow)OpenSELL()。

但是这个语句没有执行。

你知道发生了什么吗?因为我认为语句中没有错误。

问题是,当close[0]== Indicatornow时,为什么没有在准确的交叉点开仓?如果函数是==,我们将防止在指标和当前条形图的收盘价之间的交叉点以上开仓,但在变量之间的这种关系下却不起作用。

你有没有试验过同样的问题?有谁知道如何解决这个问题?

谢谢,再次感谢。

因为你正在寻找返回的8位数浮点 和价格之间的精确匹配--在这样的决议下,它们几乎不会相等。 只要检查一下大于或小于的条件。

 

证券交易软件

嗨,伙计们,我需要把这个指标或交易相对系统变成语言mql,因为这是在metatrader 4上的功能。我正在更换经纪人和软件,有人能帮助我吗?

{扩大回归移动平均线的计算方法}。

{BeginNING}

{"-HShift" - BARS FORWARDS}.

DataBars:=Ref(Price,-HShift);

e1:= Mov(DataBars,PeriodMA,TypeMA);

e2:= Mov(e1,PeriodMA,TypeMA);

e3:=Mov(e2,PeriodMA,TypeMA);

e4:= Mov(e3,PeriodMA,TypeMA);

e5:=Mov(e4,PeriodMA,TypeMA);

e6:=Mov(e5,PeriodMA,TypeMA)。

c1:= -b*b*b;

c2:= 3*b*b+3*b*b*b;

c3:= -6*b*b-3*b-3*b*b。

c4:=1+3*b+b*b*b+3*b*b。

MV:= c1*e6+c2*e5+c3*e4+c4*e3。

{计算生命时间MV

用于消除初始值的失真}。

{T3移动平均值}

e1:=Mov(Pr,PeriodMA1,TypeMA1)。

e2:=Mov(e1,PeriodMA1,TypeMA1)。

e3:=Mov(e2,PeriodMA1,TypeMA1);

e4:= Mov(e3,PeriodMA1,TypeMA1);

e5:= Mov(e4,PeriodMA1,TypeMA1);

e6:=Mov(e5,PeriodMA1,TypeMA1)。

c1:= -b1*b1*b1;

c2:=3*b1*b1+3*b1*b1*b1。

c3:=-6*b1*b1-3*b1-3*b1*b1*b1。

c4:=1+3*b1+b1*b1*b1+3*b1*b1。

MA1:= c1*e6+c2*e5+c3*e4+c4*e3。

{涨跌趋势}。

UpTrend:=Mv>=MA1;

DownTrend:=MA1>=Mv;

{多头和空头信号}多头:=cross(Mv,), 空头:=Mv>=Mv; 空头:=Mv>=Mv; 空头:=Mv>=Mv

多头:= cross(Mv,MA1) and Mv>=MA1;

空头:= cross(MA1,Mv) and MA1>=Mv;

{开盘买入和收盘买入}

OpenBuy:= cross(Mv,MA1) and Mv>=MA1;

CloseBuy:= cross(MA1,Mv) and MA1>=Mv;

{开盘卖出和收盘卖出}

OpenSell:= cross(MA1,Mv) and MA1>=Mv;

CloseSell:= cross(Mv,MA1) and Mv>=MA1;

 
bobo10:
嗨,伙计们,我需要把这个指标或交易相对系统变成语言mql,因为它在metatrader 4上起作用。我正在更换经纪人和软件,有人能帮助我吗?

{T3移动平均线}。

e1:=Mov(Pr,PeriodMA1,TypeMA1)。

e2:=Mov(e1,PeriodMA1,TypeMA1);

e3:=Mov(e2,PeriodMA1,TypeMA1);

e4:= Mov(e3,PeriodMA1,TypeMA1);

e5:= Mov(e4,PeriodMA1,TypeMA1);

e6:=Mov(e5,PeriodMA1,TypeMA1)。

c1:= -b1*b1*b1;

c2:=3*b1*b1+3*b1*b1*b1。

c3:=-6*b1*b1-3*b1-3*b1*b1*b1。

c4:=1+3*b1+b1*b1*b1+3*b1*b1。

MA1:= c1*e6+c2*e5+c3*e4+c4*e3。

所有这些代码都是相似的,你可以从T3代码 开始看起

 
nittany1:
全局,把这个放在init()之前
datetime PreviousBar;[/CODE]

In the order placement and/or order close stuff, wrap it in this:

if(NewBar() == true)

{

if blah blah blah, gimme pips // not actual functions but you get the idea

if blah blah blah, close orders // um

}

Common function outside main loop:

[CODE]//--- returns true if current bar just formed

bool NewBar()

{

if(PreviousBar<Time[0])

{

PreviousBar = Time[0];

return(true);

}

else

{

return(false);

}

return(false);

}

谢谢nitty1的帮助。 我将尝试一下。

也感谢waltini和devil2000。 我现在应该能搞清楚了。

 

在演示版上自由运行的账户代码

你好。

谁能告诉我,可以插入什么代码,让有账户安全代码的EA也能在模拟账户 上自由运行,这样用户就可以在上线前测试它?

这有可能吗?

谢谢

 
fxgrm:
你好。

谁能告诉我,可以插入什么代码,让有账户安全代码的EA也能在模拟账户上自由运行,这样用户就可以在上线前测试它?

这有可能吗?

谢谢

从元编辑器上看。

bool IsDemo()

如果专家在模拟账户 上运行,返回TRUE,否则返回FALSE。

 

用StepMA对 "趋势条件 "进行编码

买入条件。

StepMA(颜色模式:2)为 "长"。

随机指数 从下到上越过20

卖出条件。

StepMA(颜色模式:2)为 "空"

随机指数从上到下越过80

double StochCurrent = iStochastic(NULL, 0, 21, 3, 8, MODE_SMA, 0, MODE_MAIN, Bar + 0);

double StochPrevious = iStochastic(NULL, 0, 21, 3, 8, MODE_SMA, 0, MODE_MAIN, Bar + 1);

double TrendLong = iCustom(NULL, 0, "stepma_v7ea", 1, 1.0, 0, 0, 0.0, false, 2, 0, 1, Bar + 0);

double TrendShort = iCustom(NULL, 0, "stepma_v7ea", 1, 1.0, 0, 0, 0.0, false, 2, 0, 2, Bar + 0);

如果买入。

TrendLong && StochCurrent > 20 && StochPrevious < 20

卖出,如果。

趋势空头 && StochCurrent 80

谁能帮我看看上述例子中的 "趋势条件 "的代码,它不起作用。我试着为多头和空头模式调用缓冲区1和缓冲区2,但我不明白这个指标的代码。谢谢你的帮助。