编码帮助 - 页 130

 

我不知道它们是对象还是缓冲区。是否也可以在指标中发送订单,以便我不需要任何专家顾问?在没有止损和止盈的 情况下开立订单的算法是什么?

但我想我需要一个专家顾问,通过箭头的出现来打开订单,并在关闭信号出现时关闭订单。我可以通过符号识别已开的订单吗?

 
arroganzmaschine:
我不知道它们是对象还是缓冲区。是否也可以在指标中发送订单,这样我就不需要任何专家顾问?在没有止损和止盈的情况下开单的算法是什么?

1.对象将在对象列表中可见

2.不可以,你不能从一个指标中管理订单

3.要打开订单(蚂蚁类型的订单),你必须使用订单发送。OrderSend()函数的帮助。

______________________________________

int OrderSend(string symbol,int cmd,double volume,double price,int slippage,double stoploss,double takeprofit,string comment=NULL,int magic=0,datetime expiration=0,color arrow_color=CLR_NONE)

用于开仓或下挂单的主函数。

返回交易服务器分配给订单的票据号码,如果失败则返回-1。要获得额外的错误信息,必须调用GetLastError() 函数。

注意。

在开立市场订单(OP_SELL或OP_BUY)时,只有Bid(卖出)或Ask(买入)的最新价格可以作为开盘价。如果操作的证券与当前证券不同,必须使用MarketInfo() 函数,并使用MODE_BID或MODE_ASK参数来获得该证券的最新报价。不能应用计算的或未规范的价格。如果价格线程中没有要求的开盘价,或者没有根据小数点后的数字量 进行规范化处理,将产生错误 129(ERR_INVALID_PRICE)。如果要求的开盘价完全过期,将产生独立于滑点 参数的错误 138(ERR_REQUOTE)。如果要求的价格已经过期,但存在于线程中,那么将以当前价格开仓,并且只有当前价格位于价格+滑点 范围内。

StopLoss和TakeProfit水平不能离市场太近。以点为单位的止损位的最小距离可以通过MarketInfo() 函数和MODE_STOPLEVEL参数获得。如果出现错误的或不正常的止损水平,将产生错误 130(ERR_INVALID_STOPS)。

在下达挂单时,开仓价不能离市场太近。挂单价格与当前市场价格的最小距离(点)可以通过MarketInfo() 函数的MODE_STOPLEVEL参数获得。如果挂单的开盘价是假的,将产生错误 130(ERR_INVALID_STOPS)。

在一些交易服务器中,挂单到期时间的应用可以被禁用。在这种情况下,当在过期 参数中指定一个非零值时,将产生错误 147(ERR_TRADE_EXPIRATION_DENIED)。

在一些交易服务器上,未结订单和挂单的总量 可以被限制。如果超过了这个限制,将不会有新的头寸被打开(或没有挂单被放置),贸易服务器将返回错误 148(ERR_TRADE_TOO_MANY_ORDERS)。 参数。

/TD][/[/TD]] [/].][TD="width: 100%"]止损水平。

[TR

] [[TD] - [TD="width: 100%"]获利水平。

[TR]

[[TD] - [TD="width: 100%"]订单注释文本。评论的最后部分可以由服务器改变。

[TR]

[TD]magic[TD] - [TD="width: 100%"]订单的神奇数字。

[TR

] [TD][TD]

[TR]

[TD]arrow_color[TD] - [TD="width: 100%"]图表上开仓箭头的颜色。如果参数缺失或有CLR_NONE值,开仓箭头不会在图表上画出来。
symbol[/TD] -[/TD]交易的符号。[/TD

] [/TR]

cmd[/TD] -[/TD]操作类型。[/TD] [/

TR

]
volume[/TD] - [
Number of lots. [/TD]

TR]

price
] - [/TD
Preferred price of the trade. [/TD

TR]

slippage[/TD] - [/TD
Maximum price slippage for buy or sell orders
[/TD

[/TR]

stoploss[/TD] -
TD]takeprofit
TD]comment
expiration
- [TD="width: 100%"]订单到期时间(仅适用于挂单)。

样本。

int ticket;

if(iRSI(NULL,0,14,PRICE_CLOSE,0)<25)

{

ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-25*Point,Ask+25*Point,"My order #2",16384,0,Green);

if(ticket<0)

{

Print("OrderSend failed with error #",GetLastError());

return(0);

}

}

 

我可以把指标寄给你,以便你能给我一些建议吗?

 
arroganzmaschine:
我可以把指标邮寄给你,以便你能给我一些建议吗?

你可以把它贴出来(如果它不是私人或商业指标)。

 

它是私人的 。我想我必须阅读所有的东西才能得到我的解决方案。

我可以从出现 平仓信号 的特定符号中关闭订单吗?

 
arroganzmaschine:
这是私人的 。我想我必须阅读所有的东西才能得到我的解决方案。 我可以从出现平仓信号的特定符号中关闭订单吗?
试着先看一下这两个主题:https://www.mql5.com/en/forum/173136

https://www.mql5.com/en/forum/173171

另外,你最好从这个帖子开始https://www.mql5.com/en/forum/172969/page2

,如果你跟着那个帖子的链接,会更容易找到关于mql编码的信息。
 

谢谢你,我稍后会回复。

 

Mladen,请问一下,(完美的趋势线)ptl2和警报指标是否重绘?

 

我看到也有警报。当一些IndexBuffers有正确的值时,它们就被发送。

我可以用一些if{-clauses来发送我的命令吗?

 
funayot:
Mladen,请问一下,(完美趋势线)ptl2和警报指标会不会重绘?

没有,"(完美趋势线)ptl2和警报 "指标在收盘后没有重绘!?