如何编码? - 页 63

 

如何在一个小节的开头开立一个订单?

你好。

我正在实施一个EA,我想只在前一个条形图和前一个条形图之间出现某个指标的交叉时开立订单。

例如,在日线图上,如果在1月18日和1月19日之间有一个交叉,我想在1月20日开一个订单。

我是这样做的。

当我打开一个订单时,我记录下订单打开时间

然后我做了以下测试。是否(CurrentTime() - LastOrderOpenTime)< Period()?

如果是,这意味着当前的条形图还没有完成,我不应该打开一个新的订单。另外,当这个条件为假时,我应该是在图表的下一个条形上,而十字星发生在最后一个条形之前,在下一个信号之前不应该打开订单。

问题是,当把它连接到图表上时,它一直在创建新的订单,直到条形图结束。有谁能告诉我我做错了什么?

 
dvarrin:
你好。

我正在实施一个EA,我想只有在前一个条形图和前一个条形图之间出现某个指标的交叉时,才开立一个订单。

例如,在日线图上,如果在1月18日和1月19日之间有一个交叉点,我想在1月20日开一个订单。

我是这样做的。

当我打开一个订单时,我记录下订单打开时间。

然后我做了以下测试。是否(CurrentTime() - LastOrderOpenTime)< Period()?

如果是,这意味着当前的条形图还没有结束,我不应该打开一个新的订单。另外,当这个条件为假时,我应该在图表的下一个条形上,而十字星发生在最后一个条形之前,在下一个信号之前不应该开单。

问题是,当把它附加到一个图表上时,它一直在创建新的订单,直到条形图结束。有谁能告诉我我做错了什么?

我不确定,但这是某个人在某个时候为我做的记录。 我必须在谷歌上搜索一下,以便为原作者提供适当的支持。

它有助于确定你是否在一个新栏的开口处。

int newbar()

{

double g;

int m,s,k;

m=Time[0]+Period()*60-TimeCurrent();

g=m/60.0;

s=m%60;

m=(m-m%60)/60;

return(m);

}[/CODE]

And I use it like this:

[CODE]if (newbar()==Period())

希望这对你有帮助。

 
dvarrin:
你好。

我正在实施一个EA,我想只有在前一个条形图和前一个条形图之间出现某个指标的交叉时,才开立一个订单。

例如,在日线图上,如果在1月18日和1月19日之间有一个交叉点,我想在1月20日开一个订单。

我是这样做的。

当我打开一个订单时,我记录下订单打开时间。

然后我做了以下测试。是否(CurrentTime() - LastOrderOpenTime)< Period()?

如果是,这意味着当前的条形图还没有结束,我不应该打开一个新的订单。另外,当这个条件为假时,我应该在图表的下一个条形上,而十字星发生在最后一个条形之前,在下一个信号之前不应该打开订单。

问题是,当把它附加到一个图表上时,它一直在创建新的订单,直到条形图结束。有谁能告诉我我做错了什么?

然后我做了以下测试。Is(CurrentTime() - LastOrderOpenTime) < Period()?

你可以添加//返回(0)。

或者

这可能会有帮助...添加代码...

for(int i=0;i<OrdersTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;

如果(OrderSymbol()== Symbol () && OrderMagicNumber()== MN)

{

如果( OrderOpenTime() >= iTime(0, PERIOD_D1, 0) samebar++;

}

}

你可以从2个方面选择。

if ( samebar > 0 ) 返回(0)。

或者

if (samebar < 1) {你的订单代码; }

我不擅长编码,所以可能有人会尝试检查 我是否放对了代码。

 
dvarrin:
你好。

我正在实施一个EA,我想只有在前一个条形图和前一个条形图之间出现某个指标的交叉时,才开立一个订单。

例如,在日线图上,如果在1月18日和1月19日之间有一个交叉点,我想在1月20日开一个订单。

我是这样做的。

当我打开一个订单时,我记录下订单打开时间。

然后我做了以下测试。是否(CurrentTime() - LastOrderOpenTime)< Period()?

如果是,这意味着当前的条形图还没有完成,我不应该打开一个新的订单。另外,当这个条件为假时,我应该是在图表的下一个条形上,而十字星发生在最后一个条形之前,在下一个信号之前不应该开单。

问题是,当把它附加到一个图表上时,它一直在创建新的订单,直到条形图结束。有谁能告诉我我做错了什么?

呒呒...

if(iOpen(Symbol(),0,0)==iClose(Symbol(),0,0)&&iLow(Symbol(),0,0)==iHigh(Symbol(),0,0))

{

//A new bar has happend.

}
 

我怎样才能知道上一笔交易的利润?还有手数,以及边数?

 
Dan7974:
我怎样才能知道上一笔交易的利润?还有手数,以及边数?

使用OrdersHistoryTotal()而不是OrdersTotal()。 然后使用OrderProfit(), OrderLots()等。 你必须确保你感兴趣的时间段的历史报价被加载,我想你只能手动操作--右击 "订单历史 "标签并选择 "所有历史"。

应该补充一下,你需要在OrderSelect()中使用'MODE_HISTORY'...

 
omelette:
使用OrdersHistoryTotal()而不是OrdersTotal()。 然后使用OrderProfit()、OrderLots()等。 你必须确保你感兴趣的时间段的历史报价被加载,我想你只能手动操作--右击 "订单历史 "标签,选择 "所有历史"。 应该补充的是你需要在OrderSelect()中使用 "MODE_HISTORY"...

嗨,煎蛋。

你知道吗,BT在查看历史记录时有一个问题:它查看的是真实的历史记录,而不是BT的记录。几个月前我向Metaquote询问过这个问题,但他们没有任何答复....。也许现在它被修复了...

 

尊敬的先生

你如何对一种货币的利率收紧周期和另一种货币的利率降低周期进行编码?

EA能否查看掉期的当前利率和掉期的历史利率?

OILFXPRO

 
附加的文件:
原因: