挂单成交之后的类型是什么?(实例说)

 

如题,挂单成交之后,其类型算什么?

市价成交,同方向的挂单也成交,之后想要对挂单追踪止损(修改订单),如何才能把它找出来?谢谢。。。。

实例如下( 实例中修改是不是只能针对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);
}
}
}
}

 

成交前 --> 成交后

OP_BUY --> OP_BUY

OP_BUYLIMIT --> 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,就可以区分了。

 

多谢诸位热心帮助!祝大家多赚钱!

原因: