交易危机

 找回密码
 快捷注册(禁q号)

QQ登录

只需一步,快速开始

搜索
查看: 118|回复: 1

[指标] 求大佬帮忙改一下指标,跪谢

[复制链接]

3

主题

39

积分

0

精华

外汇入门

金钱
39 美元
权重
0
发表于 2019-11-8 14:53 | 显示全部楼层 |阅读模式
//+------------------------------------------------------------------+
//|                                                       挂买单.mq4 |
//|                       Copyright ?2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//|                                                       modify.mq4 |
//|                      Copyright ?2004, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright ?2004, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/"
#property show_inputs
extern double     最小手数 = 0.1;


extern string a1="自动模式设为0累加设为1固定";
extern int        自动模式 = 0;
extern double 第一单手数=0.1;
extern double 上第1档手数=0.02;
extern double 上第2档手数=0.03;
extern double 上第3档手数=0.04;
extern double 上第4档手数=0.05;
extern double 上第5档手数=0.04;
extern double 上第6档手数=0.03;
extern double 上第7档手数=0.02;
extern double 下第1档手数=0.02;
extern double 下第2档手数=0.03;
extern double 下第3档手数=0.04;
extern double 下第4档手数=0.05;
extern double 下第5档手数=0.04;
extern double 下第6档手数=0.03;
extern double 下第7档手数=0.02;

extern double 上挂单距离=2;
extern double 下挂单距离=2;
extern int    编码magic            = 88888885;
extern double 上挂单次数=4;
extern double 下挂单次数=0;

extern double MaxLots=0.2;

int gd_180;
int gd_181;
int gd_182;
int li_0;

int init() {
    li_0 = 1;
   if (Digits == 5.0 || Digits == 3.0) li_0 = 10;

   
   return (0);
}
int start()
  {
Counts();

OrderSend(Symbol(), OP_SELL, 第一单手数, Bid, 2*li_0, 0, 0,WindowExpertName( ) , 编码magic, 0,CLR_NONE);
Sguada();
Xguada();


   return(0);
  }
//+------------------------------------------------------------------+
void Sguada()
{
     for (int li_132 = 上挂单次数; li_132 > 0; li_132--) {
               RefreshRates();
               Counts();
               OrderSend(Symbol(), OP_SELLLIMIT, GetLots1(自动模式), Bid+(gd_181+1)*上挂单距离*li_0*Point, 2*li_0, 0, 0,"卖挂单"+"-"+Symbol() , 编码magic, 0,CLR_NONE);
               if (GetLastError() != 0/* NO_ERROR */) {
                  Print("Buy OrderSend 3 failed with error #", GetLastError());
                  Sleep(1000);
               }
               if(上挂单次数<=gd_181) break;
            }
            
            }
void Xguada()
{
     for (int li_132 = 下挂单次数; li_132 > 0; li_132--) {
               RefreshRates();
               Counts();
               OrderSend(Symbol(), OP_SELLSTOP, GetLots(自动模式), Bid-(gd_182+1)*下挂单距离*li_0*Point, 2*li_0, 0, 0,"卖突破单"+"-"+Symbol() , 编码magic,0,CLR_NONE);
               if (GetLastError() != 0/* NO_ERROR */) {
                  Print("Buy OrderSend 3 failed with error #", GetLastError());
                  Sleep(1000);
               }
               if(下挂单次数<=gd_182) break;
            }
            
            }

void Counts() {   
   gd_180 = 0;
   gd_181 = 0;
   gd_182 = 0;
   for (int cn = OrdersTotal() - 1; cn >= 0; cn--) {
      OrderSelect(cn, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() != Symbol()||编码magic!=OrderMagicNumber( ) ) continue;
      if (OrderSymbol() == Symbol()) {

         if (OrderType() == OP_SELL&&编码magic==OrderMagicNumber( )) gd_180 ++;
         if (OrderType() == OP_SELLLIMIT&&编码magic==OrderMagicNumber( )) gd_181 ++;
         if (OrderType() == OP_SELLSTOP&&编码magic==OrderMagicNumber( )) gd_182 ++;
      }
   }
}
double GetLots(int flag)

{
   double Lots ;
   Counts();
  
      if(flag==0)
      {
        

switch(gd_182)
{
case 0:
{
Lots =下第1档手数 ;
break;
}
case 1:
{
Lots =下第2档手数 ;break;
}
case 2:
{
Lots =下第3档手数 ;break;
}
case 3:
{
Lots =下第4档手数 ;break;
}
case 4:
{
Lots =下第5档手数 ;break;
}
case 5:
{
Lots =下第6档手数 ;break;
}
case 6:
{
Lots =下第7档手数 ;break;
}
        
}

}
   if(flag==1) Lots = 第一单手数 ;
     
      if(Lots < 第一单手数) Lots = 第一单手数;
      if(Lots > MaxLots) Lots = MaxLots;
   
   return(Lots);
}
double GetLots1(int flag)

{
   double Lots = 第一单手数;
   Counts();
  
      switch(flag)
      {
         case 0:
         {
             switch(gd_181+1)
{
case 1:
{
Lots =上第1档手数 ;
break;
}
case 2:
{
Lots =上第2档手数 ;break;
}
case 3:
{
Lots =上第3档手数 ;break;
}
case 4:
{
Lots =上第4档手数 ;break;
}
case 5:
{
Lots =上第5档手数 ;break;
}
case 6:
{
Lots =上第6档手数 ;break;
}
case 7:
{
Lots =上第7档手数 ;break;
}
        
}
            
            break;
            }
         case 1:
            Lots = 第一单手数 ;
            break;
      }
      if(Lots < 第一单手数) Lots = 第一单手数;
      if(Lots > MaxLots) Lots = MaxLots;
   
   return(Lots);
}





目前只有上下7挡,希望能改成14档

目前只有上下7挡,希望能改成14档

3

主题

39

积分

0

精华

外汇入门

金钱
39 美元
权重
0
 楼主| 发表于 2019-11-8 14:54 | 显示全部楼层
目前只有上下7挡,希望能改成14档
您需要登录后才可以回帖 登录 | 快捷注册(禁q号)

本版积分规则

QQ|黄金吧|黄金论坛|手机版|指标下载|非农|目录|交易危机

版权所有: ©2014-2019 fx3q.com Powered by Discuz! X3
浙ICP备: ICP14039028

浙公网安备 33011802001420号

风险提示:杠杆风险高,交易要谨慎 声明:坛友发言和回复均为个人观点,不代表论坛立场。
若有侵权请联系fx3q@qq.com删除

快速回复 返回顶部 返回列表