如何编码? - 页 52

 
Devil2000:
什么是 "时钟"?据我所知,MQL4中没有 "时钟 "函数。

你可以试试这个

if(TimeHour(TimeCurrent())==7)

{

if(TimeMinute(TimeCurrent())==15) B== 1;

if(TimeMinute(TimeCurrent())==30) B== 2;

if(TimeMinute(TimeCurrent())==45) B== 3;

}

if(TimeHour(TimeCurrent())==8)

{

if(TimeMinute(TimeCurrent())==0) B== 4;

if(TimeMinute(TimeCurrent())==15) B== 5;

if(TimeMinute(TimeCurrent())==30) B== 6;

}

当然,我以为他有

datetime clocks = TimeCurrent()。

在前面的一行中。

罗伯特

 
MrPip:
当然,我以为他有

datetime clocks = TimeCurrent()。

在前面的一行中。

罗伯特

真的吗?我在前一页中找不到它。

这应该是可行的。但在一个小时内,有时会因为你的网络连接或服务器的滞后而缺少一些分钟。

 

寻找程序员,将指标转换为EA

大家好。

我正在寻找一个程序员,将一个指标转换成专家顾问(或一个独立的EA,与现有的指标一起工作)。 它只需要在信号产生的地方买入或卖出,并在预设中具备以下能力。

*交易量的确定

*止损设置

*追踪止损设置

*基于账户余额 的资金管理手数大小。

附上该指标的图片。

如果你对这个项目感兴趣,或知道谁对这个项目感兴趣,请给我发邮件。

请提前感谢。

附加的文件:
indicator.gif  23 kb
 
Devil2000:
真的吗?我在前一页找不到,这应该是可以的。但是在一个小时内,由于你的网络连接或服务器的滞后,有时会缺少一些分钟。

对不起,这是时钟的代码,我可以用不同的GMT来改变。

double Clocks = TimeCurrent() - (Broker)*3600;

broker是指格林威治标准时间的经纪商。

我需要另一个问题的代码......如果我问得太多,请原谅。

我的问题:

我希望它在一天内最多只能开出1个浮动卖盘和1个浮动买盘......但在一天内可以开出超过很多的买盘或卖盘......如果EA运行三天并且每天的订单条件得到满足,它将有3个浮动买盘/卖盘或6个浮动买盘和卖盘。

例如。

第1天=开出1笔买入并击中Tp,然后开出另一笔买入=1笔买入仍未结束

第2天=之前的买入仍旧打开,并打开另一个买入=2个买入仍旧打开

第3天=2笔买入仍未平仓,另一笔买入未平仓=3笔买入仍未平仓

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

{

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

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

{

如果(OrderType() == OP_BUY) buys++;

如果(OrderType() == OP_SELL) sells++;

}

}

如果(buys < 1),它就会下单买入

如果(sells < 1),当条件满足时,它会下单卖出。

 

你可以利用这一点,只计算那些在今天打开的。

if(OrderType() == OP_BUY && OrderOpenTime() >= iTime(NULL, PERIOD_D1, 0)) buys++;
 

需要快速帮助

我有以下这些代码:.....

谁能检查一下,看看他们是否遵循这个规则......

如果图表上没有交易,那么信号就会打开1手。

如果图表上已经有一笔交易,那么其余的订单都是双倍的。

请核实。

total = OrdersTotal();

如果(总数>=2)

{

如果(MA11>MA21 &&MA12<MA22)

{

ticket=OrderSend(Symbol(),OP_BUY,2*Lots,Ask,5,Ask-stoploss*Point,0,0,Magic_number,0,Green)。

返回(0)。

}

如果(MA11MA22)

{

ticket=OrderSend(Symbol(),OP_SELL,2*Lots,Bid,5,Bid+stoploss*Point,0,0,Magic_number,0,Red) 。

返回(0)。

}

}

如果(MA11>MA21 &&MA12<MA22)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Ask-stoploss*Point,0,0,Magic_number,0,Green)。

}

如果(MA11MA22)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,5,Bid+stoploss*Point,0,0,Magic_number,0,Red)。

}

}

 

马丁格尔?

你没有希望.....

 
kjhfdgjfhdghdf:
马丁格尔? 你没有希望.....

我会记住的,谢谢

 

我只是改变并添加了红色的字符......希望这有帮助。

total = OrdersTotal();

if(total>=1)

{

如果(MA11>MA21 &&MA12<MA22)

{

ticket=OrderSend(Symbol(),OP_BUY,2*Lots,Ask,5,Ask-stoploss*Point,0,0,Magic_number,0,Green)。

返回(0)。

}

如果(MA11MA22)

{

ticket=OrderSend(Symbol(),OP_SELL,2*Lots,Bid,5,Bid+stoploss*Point,0,0,Magic_number,0,Red) 。

返回(0)。

}

}

如果(total<1)

{

如果(MA11>MA21 && MA12<MA22)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Ask-stoploss*Point,0,0,Magic_number,0,Green)。

}

如果(MA11MA22)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,5,Bid+stoploss*Point,0,0,Magic_number,0,Red)。

}

}
 

MAs交叉时的止损

在一个EA中,我有一个SL=50。

如果我想让SL=50或跨越2个MA时如何编码?

谢谢你的帮助。