如何编码? - 页 53

 

试试这个。

double ma_cross;[/CODE] as a global variable.

In the start function :

[CODE]

double ma1=NormalizeDouble(first_ma,Digits);

double ma2=NormalizeDouble(second_ma,Digits);

if(ma1=ma2)

{

ma_cross=ma1;

}

int spread=MarketInfo(Symbol(), MODE_SPREAD);

SLbuy=ma1+spread-SL*Point;

SLsell=ma1+SL*Point;

希望这有帮助

 

在反转信号下平仓/开仓交易

我有一个小问题。

在我的EA中,我有一个BuyCondition和Sell Condition,以及一个针对反向信号的平仓指令。为了防止在同一根柱子内打开和关闭交易,我有以下代码。

如果(OneEntryPerBar==true)

{

if(CheckEntryTime==iTime(NULL,PERIOD_H1,0)) return(0); else CheckEntryTime = iTime(NULL,PERIOD_H1,0);

}

一切正常。但是现在,如果他在一个开放的买入交易中发现一个卖出条件,他就关闭买入,这是好的。但他没有打开卖出,因为上面的代码阻止了这一点。

有什么办法能让他在一个柱子内平仓和开仓......但每个柱子只做一次?

我希望我能够理解。

谢谢

 

在某个时间关闭和取消?

谁能帮助我建立EA,在某个时间关闭所有未结订单并取消所有挂单,即UTC+1上午5:15?

是否也可以不仅指定时间,而且指定日期?

 
dxtrade:
我这里有一个小问题。

在我的EA中,我有一个BuyCondition和Sell Condition,还有一个用于反转信号的关闭指令。为了防止在同一根柱子内打开和关闭交易,我有以下代码。

if(OneEntryPerBar==true)

{

if(CheckEntryTime==iTime(NULL,PERIOD_H1,0)) return(0); else CheckEntryTime = iTime(NULL,PERIOD_H1,0);

}

一切正常。但是现在,如果他在一个开放的买入交易中发现一个卖出条件,他就关闭买入,这是好的。但他没有打开卖出,因为上面的代码阻止了这一点。

有什么办法能让他在一个柱子内平仓和开仓......但每个柱子只做一次?

我希望我说得明白。

谢谢

由于你使用的上述代码,它不会打开,直到下一个小时...。

你可以试试这个...

如果(OrderOpenTime() >= iTime(NULL, PERIOD_H1, 0)) order++;

如果(order < 1)

{

订单条件

}

希望这有帮助......不是专家......但这段代码不能阻止它做一次以上。

 

帮助我

我不会说英语,我想加入Maxtrade和Risk,你能帮助我吗?

谢谢你

附加的文件:
zero.mq4  10 kb
 
wasanmyza:
我不会说英语,我想添加Maxtrade和Risk,你能帮助我吗 谢谢

你好。

你对这个EA还有其他问题。你说你想在VAR1、VAR2或VAR3达到或超过某些数值时进行买入或卖出。

你必须首先定义什么是VAR1、2和3?一些具有特定设置的指标?

谢谢。

陌生的人

 

获取利润,取消所有其他订单

有没有人知道如何编码,一旦开仓订单达到盈利目标,其余的挂单将被删除?这与OCO不同。我已经检查了精英部分,但那里什么都没有。

 

问题

我不明白两个程序的区别,但会教它吗?

int limit = Bars-IndicatorCounted();

int i ;

for( i=limit-1; i>=0; i--)

int counted_bars=IndicatorCounted()。

//----,检查 可能的错误

if(counted_bars<0) return(-1);

//---- 最后一个被计算的柱子将被重新计算。

如果(counted_bars>0) counted_bars--;

limit=Bars-counted_bars。

for(i = 0; i <= limit; i++)

 
nakata79087:
我不明白这两个程序的区别,但可以教给我吗?

int limit = Bars-IndicatorCounted()。

int i ;

for( i=limit-1; i>=0; i--)

int counted_bars=IndicatorCounted()。

//----,检查可能的错误

if(counted_bars<0) return(-1);

//---- 最后一个被计算的柱子将被重新计算。

如果(counted_bars>0) counted_bars--;

limit=Bars-counted_bars。

for(i = 0; i <= limit; i++)

重要的 区别是 "for "循环的方向。

第一个循环按照自然时间扫描条形,即从最早的条形到最新的条形。

第二个循环以相反的方向扫描条形图:如果一个条形图的计算不涉及前一个条形图的结果,它就可以工作。

一般来说,最好是使用与时间相同的方向:它总是有效的,而且没有错误的可能性。

 

谢谢你

谢谢你的好意,Michel!

我困扰了很久,为什么它开始了不同的签名,虽然这两个签名有细微差别。