成交前 --> 成交后
OP_BUY --> OP_BUY
OP_BUYSTOP --> OP_BUY
int OrderSend(
string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, void comment, void magic, void expiration, void arrow_color)
symbol | - | 交易货币对。 |
cmd | - | 购买方式。可以是购买方式列举的任意值。 |
volume | - | 购买手数。 |
price | - | 收盘价格。 |
slippage | - | 最大允许滑点数。 |
stoploss | - | 止损水平。 |
takeprofit | - | 赢利水平。 |
comment | - | 注解文本。注解的最后部分可以由服务器改变。 |
magic | - | 定单指定码。可以作为用户指定识别码使用。 |
expiration | - | 定单有效时间(只限挂单)。 |
arrow_color | - | 图表上箭头颜色。如果参量丢失或存在CLR_NONE价格值不会在图表中画出。 |
“市价成交,同方向的挂单也成交,之后想要对挂单追踪止损(修改订单)”
可以用magic和comment来区分。例如:
卖停挂单: magic=-3.
空单挂单: magic=-2.
空单市价: magic=-1.
多单市价: magic=1.
多单挂单: magic=2.
买停挂单: magic=3.
或者,magic + comment方式。
卖单市价: magic=8888, comment="SELL".买单市价: magic=8888, comment="BUY".
卖单挂单: magic=8888, comment="SELLLIMIT".
买单挂单: magic=8888, comment="BUYLIMIT".
买停挂单: magic=8888, comment="BUYSTOP".
卖停挂单: magic=8888, comment="SELLSTOP".
回头你用OrderMagicNumber()和OrderComment()读取交易定单中的magic和comment,就可以区分了。
多谢诸位热心帮助!祝大家多赚钱!
如题,挂单成交之后,其类型算什么?
市价成交,同方向的挂单也成交,之后想要对挂单追踪止损(修改订单),如何才能把它找出来?谢谢。。。。
实例如下( 实例中修改是不是只能针对OP_BUY或OP_SELL? 譬如OP_BUYSTOP 等挂单成交,我想设定不同的移动止损水平,该如何操作?请高人指点,不胜感激!)
//交易:
ticket1=OrderSend(Symbol(),OP_BUY,Lots,op,3,op-stoploss*Point,op+TakeProfit*Point,"liupuMACD2",MagicNumber,1,Green);
ticket2=OrderSend(Symbol(),OP_BUYLIMIT,Lots1,opl,3,opl-stoploss1*Point,opl+TakeProfit*Point,"liupuMACD2",MagicNumber,Time[0]+10800,Green);
ticket3=OrderSend(Symbol(),OP_BUYSTOP,Lots2,op2,3,op2-stoploss2*Point,op2+TakeProfit2*Point,"liupuMACD2",MagicNumber,Time[0]+18000,Green);
//修改:
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELLLIMIT && OrderMagicNumber()==MagicNumber&&OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY)
………………
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}