光辉岁月 发表于 2016-1-26 14:03:59

不断补挂单的

// 不断补挂单的

extern int    挂单距离   = 11;
extern double 初手数       = 0.1;
extern double IncLot       = 0;
extern double 最小赢利目标 = 100;
extern int    滑点         = 3;
extern double 补单距       = 5;
extern int    魔术号       = 20140908;

double 最后卖手数 = 0;
double 最后买手数 = 0;
double 最后开卖价;
double 最后开买价;
int    改四系数;

//----------------初始化-----------------+

int init()
{
   //--设置初始余额全局变量
   GlobalVariableSet("初始余额", AccountBalance());

   if(Digits==3 || Digits==5)
      改四系数= 10;

   return(0);
}

//---------------主函数------------------+

int start()
{
   //--达赢额全消全平 (写法不错)
   if(AccountEquity()>=GlobalVariableGet("初始余额")+最小赢利目标){
      消挂子(魔术号);
      全平子(魔术号);
      GlobalVariableSet("初始余额", 0);
   }

   GlobalVariableSet("初始余额", AccountBalance());

   //--无单时 挂双向突单(策略过于简单!)
   if(已发送单总数子(魔术号)==0){
      OrderSend(Symbol(), OP_SELLSTOP, 初手数, Ask-挂单距离*改四系数*Point, 3*改四系数, 0, 0, "", 魔术号, 0, Red);
      OrderSend(Symbol(), OP_BUYSTOP,初手数, Bid+挂单距离*改四系数*Point, 3*改四系数, 0, 0, "", 魔术号, 0, Blue);
   }

   最后开卖价= 最后开卖价子(魔术号);
   最后开买价= 最后开买价子(魔术号);

   //--补开买挂
   if(最后开卖价-Bid<=补单距*改四系数*Point){
      OrderSend(Symbol(), OP_BUYSTOP, 最后卖手数+IncLot, 最后开卖价+挂单距离*改四系数*Point, 3*改四系数, 0, 0, "", 魔术号, 0, Blue);
   }
   //--补开卖挂
   if(Ask-最后开买价<=补单距*改四系数*Point){
      OrderSend(Symbol(), OP_SELLSTOP, 最后买手数+IncLot, 最后开买价-挂单距离*改四系数*Point, 3*改四系数, 0, 0, "", 魔术号, 0, Red);
   }

   return(0);
}

//---------------消挂子--------------------+

int 消挂子(int 魔号)
{
   for(int i=OrdersTotal()-1; i>=0; i--){
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if(OrderMagicNumber()==魔号 && OrderSymbol()==Symbol()){
         if(OrderType()!=OP_BUY || OrderType()!=OP_SELL){
            OrderDelete(OrderTicket(), Black);
         }
      }
   }
   return(0);
}

//---------------全平子--------------------+

int 全平子(int 魔号)
{
   for(int i=OrdersTotal()-1; i>=0; i--){
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if(OrderMagicNumber()==魔号 && OrderSymbol()==Symbol()){

         if(OrderType()==OP_BUY){
            OrderClose(OrderTicket(), OrderLots(), Ask, 3*改四系数, White);
         }

         if(OrderType()==OP_SELL){
            OrderClose(OrderTicket(), OrderLots(), Bid, 3*改四系数, White);
         }
      }
   }
   return(0);
}

//------------已发送单总数子-----------------+

int 已发送单总数子(int 魔号)
{
   int 统计单数= 0;
   for(int i=0; i<OrdersTotal(); i++){
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if(OrderMagicNumber()==魔号 && OrderSymbol()==Symbol()){
         统计单数++;
      }
   }
   return(统计单数);
}

//--------------最后开买价子-----------------+

double 最后开买价子(int 魔号)
{
   for(int i=OrdersTotal()-1; i>=0; i--){
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if(OrderMagicNumber()==魔号 && OrderSymbol()==Symbol()){
         if(OrderType()==OP_SELLSTOP || OrderType()==OP_BUY){
            //--记录最后买手
            最后买手数= OrderLots();
            //--返回最后开买价
            return(OrderOpenPrice());
            break;
         }
      }
   }
   return(0);
}

//--------------最后开卖价子----------------+

double 最后开卖价子(int 魔号)
{
   for (int i=OrdersTotal()-1; i>=0; i--){
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if(OrderMagicNumber()==魔号 && OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType()==OP_SELL)){
         //--记录最后卖手
         最后卖手数= OrderLots();
         //--返回最后开卖价
         return(OrderOpenPrice());
         break;
      }
   }
   return(100000);
}

//--------试译者:ea.whyhui.com--------+


楊竣超 发表于 2016-11-16 16:17:43

Thank you for sharing 樓主,程式中的中文字是可以嗎?

339swoi 发表于 2020-6-10 10:00:36

真是 收益 匪浅

xiaosjqk 发表于 2020-6-15 17:17:33

沙发!沙发!

qbpuamar25 发表于 2020-6-28 13:21:16

没看完~~~~~~ 先顶,好同志

杨超333 发表于 2020-7-9 15:20:07

学习了,不错

mishalqw 发表于 2020-7-12 15:50:34

谢谢楼主分享

鄙视诋毁 发表于 2020-7-15 15:05:23

帮你顶下哈!!

wwszgwswqzw 发表于 2020-7-16 17:02:58

学习了,不错

杨超333 发表于 2020-8-5 12:19:26

学习了,不错
页: [1] 2
查看完整版本: 不断补挂单的