发新话题
打印

[MT指标及EA] 如果我想使系统针对每个货币兑只开一次仓怎么写

如果我想使系统针对每个货币兑只开一次仓怎么写

如果我想使系统针对每个货币兑值开一次仓怎么写
如果我想使系统针对每个货币兑值开一次仓怎么写!!

比方说,我限制我的最大开仓量是3手,
EUR/USD达到开仓条件,那就进行开仓操作,我不想使系统中再出现一张EUR/USD的单子,
资金允许,可以开别的,比方GBP/USD,但是不要再开EUR/USD

总结起来就是每个货币兑只能有一张单子

能帮我写个子程序嘛??
void………………

理念决定行为 规则看守财富 行动产生利润 犹豫葬送机遇

TOP

我没有现成的程序。
我告诉你如何实现。
子程序的内容:
1、遍历所有订单(用for循环)
2、查看每个订单的货币标识(OrderSymbol( ) )
3、如果订单的货币标识OrderSymbol( ) 等于当前图表的货币标识Symbol( )取得这个订单的订单编号OrderTicket( ) 用return() 返回这个编号。
4、如果没有找到则返回0
调用的时候将子函数的返回值与0比较,大于说明订单已经存在。
发了帖子不需要给我发信息。
我看到能解答的都会回复。

TOP

说实在的,X版是希望我多学习,呵呵,我是真不会,交易系统都是套用的别人的,只是自己想在这个系统上加上自己的规定,不过我是不会,还请X版多帮忙了,我不急,你什么时候有空,就帮谢谢

理念决定行为 规则看守财富 行动产生利润 犹豫葬送机遇

TOP

//+------------------------------------------------------------------+
//| SearchOrder 订单查询 函数                                        |
//+------------------------------------------------------------------+
int SearchOrder (int MAGIC,int ORDERTYPE)
  {
//----
   int i=0;
   for ( int z = OrdersTotal() - 1; z >= 0; z -- )
   {
     if ( !OrderSelect( z, SELECT_BY_POS ) )
     {
       Print("OrderSelect(", z, ",SELECT_BY_POS) - Error #",GetLastError() );
       continue;
     }
     if (OrderSymbol()!=Symbol())continue;
     if (OrderMagicNumber() != MAGIC )continue;
     if ( OrderType()==ORDERTYPE ) i=OrderTicket();
   }
//----
   return(i);
  }
//+------------------------------------------------------------------+

TOP

发新话题