打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
交易系统程序的框架
具体的交易策略的程序如下(一个简单的示例程序,策略也比较简单,是我自己用来做测试用的)
如果实现复杂的交易策略的话,最好是分开的程序,这样程序可读性比较强,可以容易控制。
若实现复杂的策略的话,程序应该是比较复杂的。
//------------------------------------------------------------------------
// 简称: FTM_V2
// 名称: FTM交易系统
// 类别: 交易指令
// 类型: 多头建仓
// 输出:
//------------------------------------------------------------------------

//------------------------------------------------------------------------
// 参数部分为交易系统的一些参数设置
//------------------------------------------------------------------------
Params
   //时间周期的倍率为5倍左右,其他的时间周期可以作为辅助的验证
 Numeric TimeFrame_Long(5);    //长时间周期,趋势周期,5分钟
    Numeric TimeFrame_Middle(1);  //长时间周期,趋势及操作周期,1分钟
    Numeric TimeFrame_Short(10);  //长时间周期,入场周期,10秒
 
 //趋势通道黄金分割点位
 Numeric Tongdao_P_309(3.09);    //0.309%的点位
 Numeric Tongdao_P_500(5.0);     //0.5%的点位
 Numeric Tongdao_P_618(6.18);    //0.618%的点位
    Numeric Tongdao_P_1000(10.0);    //1.0%的点位
 Numeric Tongdao_P_1500(15.0);    //1.5%的点位
 Numeric Tongdao_P_1618(16.18);    //1.618%的点位
    Numeric Tongdao_P_2000(20.0);    //2%的点位
 Numeric Tongdao_P_2500(25.0);    //2.5%的点位
 Numeric Tongdao_P_2618(26.18);    //2.618%的点位
 Numeric Tongdao_P_3000(30.0);    //3.0%的点位
 Numeric Tongdao_P_3500(35.0);    //3.5%的点位
    Numeric Tongdao_P_3618(36.18);    //3.618%的点位
 Numeric Tongdao_P_4000(40.0);    //4.0%的点位
 Numeric Tongdao_N_309(-3.09);    //-0.309%的点位
 Numeric Tongdao_N_500(-5.0);     //-0.5%的点位
 Numeric Tongdao_N_618(-6.18);    //-0.618%的点位
    Numeric Tongdao_N_1000(-10.0);    //-1.0%的点位
 Numeric Tongdao_N_1500(-15.0);    //-1.5%的点位
 Numeric Tongdao_N_1618(-16.18);    //-1.618%的点位
    Numeric Tongdao_N_2000(-20.0);    //-2%的点位
 Numeric Tongdao_N_2500(-25.0);    //-2.5%的点位
 Numeric Tongdao_N_2618(-26.18);    //-2.618%的点位
 Numeric Tongdao_N_3000(-30.0);    //-3.0%的点位
 Numeric Tongdao_N_3500(-35.0);    //-3.5%的点位
    Numeric Tongdao_N_3618(-36.18);    //-3.618%的点位
 Numeric Tongdao_N_4000(-40.0);    //-4.0%的点位
 
 //KDJ技术指标的相关参数
 Numeric KDJ_Length(8);  
 NumericKDJ_SlowLength(3); 
 Numeric KDJ_SmoothLength(3);
 
   //止赢的相关的参数
    NumericStop_Profit(40);
   //止损的相关的参数
    NumericStop_Loss(20);
   //时间相关的参数
 
 
   //------------------------------------------------------------------------
    //T3MA技术指标相关的参数,参数命名的规则为前缀就是技术指标的名称
   //------------------------------------------------------------------------
 Numeric T3MA_Periods_long1(21);
 Numeric T3MA_VolumeFactor(0.7);
 
 
//------------------------------------------------------------------------
// 交易系统中用到的一些变量
//------------------------------------------------------------------------
Vars
 
    BoolbNeedEntry;              //是否需要进场
 Bool bIsEntry;              //是否已经入场
 Bool bNeedTrace;             //是否需要跟踪
 Bool bIsTrace;              //是否在跟踪
 Bool bNeedLeave;             //是否需要出场
 Bool bIsLeave;              //是否已经出场
 //下面这两个数据就是为了防止极端情况的发生
 Numeric numTodayUpStopPrice;  //当天开盘后的涨停价格
 Numeric numTodayDownStopPrice; //当天收盘后的跌停价格
 
 //入场的原因
 Numeric numEntryReason;
 
 //------------------------------------------------------------------------
    //T3MA技术指标相关的变量,变量命名的规则为前缀就是技术指标的名称
   //------------------------------------------------------------------------
   NumericSeries T3MA_E1_long1(0);
   NumericSeries T3MA_E2_long1(0);
   NumericSeries T3MA_E3_long1(0);
   NumericSeries T3MA_E4_long1(0);
   NumericSeries T3MA_E5_long1(0);
   NumericSeries T3MA_E6_long1(0);
   NumericSeries T3MA_E7_long1(0);
 
 NumericSeriesT3MA_TongDao_Value(0);
    NumericT3MA_CC1(0);
    NumericT3MA_CC2(0); 
    NumericT3MA_CC3(0);
    NumericT3MA_CC4(0);
 //------------------------------------------------------------------------
    //KDJ技术指标相关的变量
   //------------------------------------------------------------------------
 NumericSeries KDJ_HighestValue;   
 NumericSeries KDJ_LowestValue; 
 NumericSeries KDJ_KValue;
 NumericSeries KDJ_DValue;
    BoolSeries   KDJ_condition_over(FALSE);
    BoolSeries   KDJ_condition_down(FALSE);  
 
 //------------------------------------------------------------------------
    //趋势通道入场方法下的相关变量
 // 变量的说明:变量是用来记录每个K线相对于趋势通道的位置
 //          值0是表示在+/-0.309%的范围内波动
 //          值1是表示在+/-0.618%的范围内波动
 //          值2是表示在+/-1.0%的范围内波动
 //          值3是表示在+/-1.618%的范围内波动
    //         值4是表示在+/-1.618%的范围外波动 
   //------------------------------------------------------------------------
 NumericSeriesTongDao_Factor(0);
 
 
 //------------------------------------------------------------------------
 // 临时变量定义
 //------------------------------------------------------------------------
    Numerictemp(0);
 Numeric i;
    Bool   bResetAllGlobalVar(FALSE);

 //------------------------------------------------------------------------
 // 跨周期数据获取
 //------------------------------------------------------------------------
 
 ////////////////////跨周期KDJ数据的获取,在1分钟的周期上取5分钟上的数据////
 NumericSeriesKua_KDJ_DateHourMinute;
 NumericSeriesKua_KDJ_DateHourMinute5Minute;
   StringSeries Kua_KDJ_strkeyKdj5M;
 StringSeriesKua_KDJ_strValueKdjK5M;
 StringSeriesKua_KDJ_strValueKdjD5M;
   StringSeries Kua_KDJ_strValueKdjJ5M;
   NumericSeries Kua_KDJ_numValueKdjK5M;
   NumericSeries Kua_KDJ_numValueKdjD5M;
   NumericSeries Kua_KDJ_numValueKdjJ5M;
 Numeric Kua_KDJ_tmp;
 BoolKua_KDJ_condition_over(FALSE);
 BoolKua_KDJ_condition_down(FALSE);
 //------------------------------------------------------------------------
 // 行情发展用到的变量
 //------------------------------------------------------------------------
    NumericnumCurrentStatus(0);
//------------------------------------------------------------------------
// 交易系统实现部分
// 设计的原则如下:
//    1、模块化,不同的策略或不同的方法间相互独立
//    2、独立化,交易系统的不同部分如出入场,资金管理等独立
//    3、标准化,交易系统中决策应该是标准化
//    4、数量化,交易系统中所有的数据应该做到量化
//    5、最小化风险,交易系统中考虑最坏的情况,做好防御措施
// 程序的模块如下:
//    1、数据准备模块,全局变量,跨周期数据等等的准备以及数据的初始化部分
//    2、入场信号提示模块,只是给出入场的信号
//    3、入场信号的过滤单元,过滤入场信号,并给出入场信号的评估,当产生复合的入场信号时给出评估
//    4、跟踪单元
//    5、出场单元
//    6、资金管理和头寸管理单元(这个模块需要应用在入场、跟踪、出场单元中)
//------------------------------------------------------------------------
Begin
//------------------------------------------------------------------------
// 数据准备模块
// 说明:
//    1、变量的初始化
//    2、跨周期数据获取
//    3、资金管理的数据
//    4、阻力位支撑位,成交密集区域,震荡箱体的上下限,前期的高低位
//    5、相关技术指标的数据
//------------------------------------------------------------------------
   //------------------------------------------------------------------------
 // 全局变量的初始化
 // 全局变量的说明
 //       全局变量-0-是用来存储当前价格在趋势通道的那个位置
 //               值0是表示在+/-0.309%的范围内波动
 //               值+/-1是表示在+/-0.618%的范围内波动
 //               值+/-2是表示在+/-1.0%的范围内波动
 //               值+/-3是表示在+/-1.618%的范围内波动
    //              值+/-4是表示在+/-1.618%的范围外波动 
 //       全局变量-1-是用来存储当前是否已经持有空单的数据的变量
 //               值0 表示未持有任何空单
 //               值1 表示是持有空单
 //       全局变量-2-是用来存储当前持有空单的数量的变量
 //               值0 表示未持有任何空单
 //               值1 表示是持有空单为1单
    //               值2表示是持有空单为2单,其他的为类推
 //       全局变量-3-是用来设置是否可以开仓的标志
 //               值0 表示不开仓
 //               值1 表示开空仓
 //               值2 表示开多仓  
 //       全局变量-4-是用来设置是否可以平仓的标志,并给出平仓的原因
 //               值0 表示不平仓
 //               值1 表示止损平仓
 //               值2 表示止赢平仓
    //               值3 表示信号平仓
    //               值4表示其他原因平仓
 //       全局变量-5-止赢的数值
 //               值是用来表示止赢的获利的点位数
 //       全局变量-6-止损的数值
 //               值是用来表示止损的平仓的点位数
 //       全局变量-7-止赢设置的状态
 //               值0 表示未设置止赢
    //               值1表示设置初始的止赢
    //               值2表示根据形式的发展设置的动态止赢
 //       全局变量-8-止损设置的状态
 //               值0 表示未设置止损
    //               值1表示设置初始的止损
    //               值2表示根据形式的发展设置的动态止损
 //       全局变量-9-记录入场的价格数据
 //               值是用来入场的价格数据
 //------------------------------------------------------------------------
 If( BarStatus == 0 )
 {
    SetGlobalVar(0,0);  //价格在趋势通道的位置
      SetGlobalVar(1,0);  //策略刚开始运行时不持有任何的空单
      SetGlobalVar(2,0);   //策略刚开始运行时空单量为零
      SetGlobalVar(3,0);   //是否可以开仓
      SetGlobalVar(4,0);   //平仓的原因
      SetGlobalVar(5,0);   //止赢的数值
  SetGlobalVar(6,0);  //止损的数值
      SetGlobalVar(7,0);   //止赢设置的状态
      SetGlobalVar(8,0);   //止损设置的状态
  SetGlobalVar(9,0);  //进场的价格数据
 }
 //------------------------------------------------------------------------
    //T3MA技术指标的数据准备
   //------------------------------------------------------------------------
 //数据计算
 T3MA_CC1 =0-T3MA_VolumeFactor*T3MA_VolumeFactor*T3MA_VolumeFactor;
 T3MA_CC2 =3*T3MA_VolumeFactor*T3MA_VolumeFactor +3*T3MA_VolumeFactor*T3MA_VolumeFactor*T3MA_VolumeFactor;
 T3MA_CC3 =-6*T3MA_VolumeFactor*T3MA_VolumeFactor - 3*T3MA_VolumeFactor -3*T3MA_VolumeFactor*T3MA_VolumeFactor*T3MA_VolumeFactor;
 T3MA_CC4 = 1 + 3*T3MA_VolumeFactor +T3MA_VolumeFactor*T3MA_VolumeFactor*T3MA_VolumeFactor +3*T3MA_VolumeFactor*T3MA_VolumeFactor;
   //基本数据计算
 T3MA_E1_long1 =XAverage(Close,T3MA_Periods_long1);
 T3MA_E2_long1 =XAverage(T3MA_E1_long1,T3MA_Periods_long1);
 T3MA_E3_long1 =XAverage(T3MA_E2_long1,T3MA_Periods_long1);
 T3MA_E4_long1 =XAverage(T3MA_E3_long1,T3MA_Periods_long1);
 T3MA_E5_long1 =XAverage(T3MA_E4_long1,T3MA_Periods_long1);
 T3MA_E6_long1 =XAverage(T3MA_E5_long1,T3MA_Periods_long1);
 T3MA_E7_long1 =T3MA_CC1*T3MA_E6_long1 + T3MA_CC2*T3MA_E5_long1 +T3MA_CC3*T3MA_E4_long1 + T3MA_CC4*T3MA_E3_long1;
   //延伸数据的计算,计算出K线数据的最高点和最低点偏离均线的程度
    If(( high>= T3MA_E7_long1 ) AND (( high - T3MA_E7_long1 ) > (T3MA_E7_long1 - Low )))
    {
  T3MA_TongDao_Value = ( high -T3MA_E7_long1 ) / T3MA_E7_long1;
 }
 If(( Low <= T3MA_E7_long1 ) AND ((high - T3MA_E7_long1 ) < ( T3MA_E7_long1 - Low )))
 {
  T3MA_TongDao_Value = ( low -T3MA_E7_long1 ) / T3MA_E7_long1;
 }
   T3MA_TongDao_Value = T3MA_TongDao_Value * 1000;  //这个数据是用于1分钟行情上的
 
 //------------------------------------------------------------------------
    //KDJ技术指标的数据准备
   //------------------------------------------------------------------------ 
 KDJ_HighestValue = HighestFC(High,KDJ_Length);
 KDJ_LowestValue = LowestFC(Low,KDJ_Length);
 KDJ_KValue = SummationFC(Close -KDJ_LowestValue,KDJ_SlowLength)/SummationFC(KDJ_HighestValue-KDJ_LowestValue,KDJ_SlowLength)*100;
 KDJ_DValue =AverageFC(KDJ_KValue,KDJ_SmoothLength);
   KDJ_condition_over = CrossOver(KDJ_KValue,KDJ_DValue);
   KDJ_condition_down = CrossUnder(KDJ_KValue,KDJ_DValue);
 
 //------------------------------------------------------------------------
    //跨周期的数据准备
   //------------------------------------------------------------------------ 
 
 ////////////////////跨周期KDJ数据的获取,在1分钟的周期上取5分钟上的数据////
   Kua_KDJ_DateHourMinute = Date + Hour/100 + Minute/10000;
 Kua_KDJ_tmp = Minute%5;
 Kua_KDJ_tmp = Minute -Kua_KDJ_tmp;
 Kua_KDJ_DateHourMinute5Minute = Date+ Hour/100 + Kua_KDJ_tmp/10000;
 If(Kua_KDJ_DateHourMinute5Minute!=Kua_KDJ_DateHourMinute5Minute[1])
    {
         Kua_KDJ_strkeyKdj5M =DateTimeToString(Kua_KDJ_DateHourMinute5Minute[1]);     
   }Else
    {
         Kua_KDJ_strkeyKdj5M = Kua_KDJ_strkeyKdj5M[1];
    }
 Kua_KDJ_strValueKdjK5M =GetTBProfileString("Kdj5Minute_K",Kua_KDJ_strKeyKdj5M);
   Kua_KDJ_strValueKdjD5M =GetTBProfileString("Kdj5Minute_D",Kua_KDJ_strKeyKdj5M);
   Kua_KDJ_strValueKdjJ5M =GetTBProfileString("Kdj5Minute_J",Kua_KDJ_strKeyKdj5M);
   If(Kua_KDJ_strValueKdjK5M != InvalidString)
    {
         Kua_KDJ_numValueKdjK5M = Value(Kua_KDJ_strValueKdjK5M);
   }Else
    {
         Kua_KDJ_numValueKdjK5M = Kua_KDJ_numValueKdjK5M[1];
    }
   If(Kua_KDJ_strValueKdjD5M != InvalidString)
    {
         Kua_KDJ_numValueKdjD5M = Value(Kua_KDJ_strValueKdjD5M);
   }Else
    {
         Kua_KDJ_numValueKdjD5M = Kua_KDJ_numValueKdjD5M[1];
    }
   If(Kua_KDJ_strValueKdjJ5M != InvalidString)
    {
         Kua_KDJ_numValueKdjJ5M = Value(Kua_KDJ_strValueKdjJ5M);
   }Else
    {
         Kua_KDJ_numValueKdjJ5M = Kua_KDJ_numValueKdjJ5M[1];
    }
 
 
 Kua_KDJ_condition_over =CrossOver(Kua_KDJ_numValueKdjK5M,Kua_KDJ_numValueKdjD5M);
 Kua_KDJ_condition_down =CrossUnder(Kua_KDJ_numValueKdjK5M,Kua_KDJ_numValueKdjD5M);
   

//------------------------------------------------------------------------
// 入场信号提示模块
// 说明:
//    1、入场信号提示部分
//    2、概率胜算以及风险回报比,可能的止损位和发展的空间等等的评估
//    3、给出可能入场的位置
//------------------------------------------------------------------------
 
 
 ///////////////////根据趋势通道的关键点位入场/////////////////////////////
 //判断当前价格和趋势通道的相对关系
 If( ( T3MA_TongDao_Value >= 0 )AND ( T3MA_TongDao_Value < Tongdao_P_309 ) )
 {
  TongDao_Factor = 0;
 }
 
 If( ( T3MA_TongDao_Value >=Tongdao_P_309 ) AND ( T3MA_TongDao_Value < Tongdao_P_618 ))
 {
  TongDao_Factor = 1;
 }
 If( ( T3MA_TongDao_Value >=Tongdao_P_618 ) AND ( T3MA_TongDao_Value < Tongdao_P_1000 ))
 {
  TongDao_Factor = 2;
 }
 If( ( T3MA_TongDao_Value >=Tongdao_P_1000 ) AND ( T3MA_TongDao_Value < Tongdao_P_1618 ))
 {
  TongDao_Factor = 3;
 }
 If( T3MA_TongDao_Value >=Tongdao_P_1618 )
 {
  TongDao_Factor = 4;
 }
 //判断当前价格和趋势通道的相对关系
 If( ( T3MA_TongDao_Value >Tongdao_N_309 ) AND ( T3MA_TongDao_Value <= 0 ) )
 {
  TongDao_Factor = 0;
 }
 
 If( ( T3MA_TongDao_Value >Tongdao_N_618 ) AND ( T3MA_TongDao_Value <= Tongdao_N_309 ))
 {
  TongDao_Factor = -1;
 }
 If( ( T3MA_TongDao_Value >Tongdao_N_1000 ) AND ( T3MA_TongDao_Value <= Tongdao_N_618 ))
 {
  TongDao_Factor = -2;
 }
 If( ( T3MA_TongDao_Value >Tongdao_N_1618 ) AND ( T3MA_TongDao_Value <= Tongdao_N_1000 ))
 {
  TongDao_Factor = -3;
 }
 If( T3MA_TongDao_Value <=Tongdao_N_1618 )
 {
  TongDao_Factor = -4;
 }
///////////////////趋势行情下,背靠均线情况下入场/////////////////////////

///////////////////指标出现背离入场///////////////////////////////////////

///////////////////震荡或均线粘合后的突破/////////////////////////////////
//------------------------------------------------------------------------
// 入场模块
// 说明:
//    1、入场信号的过滤和优化
//    2、入场解决何时(入场的点位),如何入场的问题
//    3、头寸管理,入场多少的问题
//------------------------------------------------------------------------
  
  ///////////////////趋势通道入场信号的过滤和优化/////////////////////////////
   If(KDJ_condition_down == TRUE )
   {
   //FileAppend("D:\\FTMV2.txt","KDJ_condition_down == TRUE-"+Text(Date)+Text(Time));
      temp =TongDao_Factor;
      For i = 4 DownTo1
    {
       If( temp <TongDao_Factor[i] )
    {
       temp = TongDao_Factor[i];
    }
    }
    If( temp== 1 )
    {
      //PlotNumeric("FTM_Down",-1,RGB(0,0,255));
    SetGlobalVar(0,1);
           SetGlobalVar(3,1);
    //FileAppend("D:\\FTMV2.txt","temp == 1-"+Text(Date)+Text(Time));
    }
    Else If(temp == 2 )
    {
      //PlotNumeric("FTM_Down",-2,RGB(0,0,255));
    SetGlobalVar(0,2);
           SetGlobalVar(3,1);
    //FileAppend("D:\\FTMV2.txt","temp == 2-"+Text(Date)+Text(Time));
    }
    Else If(temp == 3 )
    {
      //PlotNumeric("FTM_Down",-3,RGB(0,0,255));
           SetGlobalVar(0,3);
           SetGlobalVar(3,1);
    //FileAppend("D:\\FTMV2.txt","temp == 3-"+Text(Date)+Text(Time));
    }
    Else If(temp == 4 )
    {
      //PlotNumeric("FTM_Down",-4,RGB(0,0,255));
    SetGlobalVar(0,4);
           SetGlobalVar(3,1);
    //FileAppend("D:\\FTMV2.txt","temp == 4-"+Text(Date)+Text(Time));
    }
    Else
    {
           SetGlobalVar(0,0);
           SetGlobalVar(3,0);
           //FileAppend("D:\\FTMV2.txt","temp ==0-"+ Text(Date)+Text(Time));
        }
   }
  
  ///////////////////趋势通道入场信号的过滤和优化/////////////////////////////
    
   ///////////////////趋势通道入场方式----入场/////////////////////////////
      If((GetGlobalVar(3)  == 1) AND (GetGlobalVar(1)  == 0 ) ) //可以入场了,是空仓的入场方式
      {
   SellShort(1,Close);   //建立空仓  
          SetGlobalVar(9,Close); //记录建仓的点位
   SetGlobalVar(1,1);   //系统持有空单
   SetGlobalVar(2,1);   //系统持有的空单量为1
          FileAppend("D:\\FTMV2.txt","Buy::"+Text(Date)+Text(Time));
      }
 
//------------------------------------------------------------------------
// 跟踪模块
// 说明:
//    1、跟踪信号发展的空间和时间
//    2、评估可能的发展情况
//    3、调整止赢和止损
//    4、根据趋势的发展情况,看有没有减码的情况
//------------------------------------------------------------------------
     
 //------------------------------------------------------------------------
    //设置初始的止损和止赢,若在已经进场的情况下
   //------------------------------------------------------------------------
    If((GetGlobalVar(1) == 1)AND( GetGlobalVar(7) == 0 ) AND (GetGlobalVar(8) == 0 ) )  //系统已经开仓了
 {
  //SetGlobalVar(5,GetGlobalVar(9) -Stop_Profit);   //止赢的数值
  SetGlobalVar(6,GetGlobalVar(9) +Stop_Loss);   //止损的数值
      SetGlobalVar(7,1);   //止赢设置的状态
      SetGlobalVar(8,1);   //止损设置的状态
      FileAppend("D:\\FTMV2.txt","Set::"+ Text(Date)+Text(Time));
 }
 //------------------------------------------------------------------------
    //在已经进场的情况下,跟踪价格的发展,调整止损和止赢
   //------------------------------------------------------------------------ 
    If( (GetGlobalVar(7) == 1 ) AND ( GetGlobalVar(8) == 1 ) )
 {
 //若是已经设置了初始的止赢和止损,则根据行情的移动发展计算出价格的活动范围,判断是否要重新设置止赢和止损
  //计算行情的发展
      numCurrentStatus = GetGlobalVar(6) - Close;
       If(numCurrentStatus > 40 )
  {
  SetGlobalVar( 6 , GetGlobalVar(6) - 20 );  //设置新的止损的数值
         FileAppend("D:\\FTMV2.txt","Adjust::"+Text(Date)+Text(Time));
  }
 }
 
 //------------------------------------------------------------------------
    //跟踪出场技术指标信号,这里的技术指标信号可以有很多
   //------------------------------------------------------------------------ 
   
   /////////////////////////止损出场的信号///////////////////////////////////
    If( (Close> GetGlobalVar(6))AND( GetGlobalVar(1) == 1 ) )
    {
  SetGlobalVar(4,1); //止损出场的信号
      FileAppend("D:\\FTMV2.txt","Stop::"+ Text(Date)+Text(Time));
    }
 
   /////////////////////////止赢出场的信号///////////////////////////////////
   /////////////////////////5分钟周期上KDJ出场的信号/////////////////////////
    If((Kua_KDJ_condition_over == TRUE)AND( GetGlobalVar(1) == 1 ) )
 {
  SetGlobalVar(4,3);//信号出场的指示,此处为KDJ信号
 }
//------------------------------------------------------------------------
// 出场模块
// 说明:
//    1、出场
//    2、止损出场
//    3、止赢出场
//    4、出场信号出场
//    5、其他出场
//------------------------------------------------------------------------
 //------------------------------------------------------------------------
    //止损出场
   //------------------------------------------------------------------------
    If(GetGlobalVar(4) == 1 )
    {
  BuyToCover(0,Close);
      bResetAllGlobalVar = TRUE;
      FileAppend("D:\\FTMV2.txt","Sell1::"+ Text(Date)+Text(Time));
    }
 //------------------------------------------------------------------------
    //止赢出场
   //------------------------------------------------------------------------
 //------------------------------------------------------------------------
    //技术指标信号出场
   //------------------------------------------------------------------------
    If(GetGlobalVar(4) == 3 )
    {
  BuyToCover(0,Close);
      bResetAllGlobalVar = TRUE;
      FileAppend("D:\\FTMV2.txt","Sell2::"+ Text(Date)+Text(Time));
    }
 //------------------------------------------------------------------------
    //在完成出场后,重新设置全局变量
   //------------------------------------------------------------------------
   If(bResetAllGlobalVar == TRUE )
 {
    SetGlobalVar(0,0);  //价格在趋势通道的位置
      SetGlobalVar(1,0);  //策略刚开始运行时不持有任何的空单
      SetGlobalVar(2,0);   //策略刚开始运行时空单量为零
      SetGlobalVar(3,0);   //是否可以开仓
      SetGlobalVar(4,0);   //平仓的原因
      SetGlobalVar(5,0);   //止赢的数值
  SetGlobalVar(6,0);  //止损的数值
      SetGlobalVar(7,0);   //止赢设置的状态
      SetGlobalVar(8,0);   //止损设置的状态
  SetGlobalVar(9,0);  //进场的价格数据  
 }
//------------------------------------------------------------------------
// 整个程序流程的说明
// 说明:
//------------------------------------------------------------------------
  
End
//------------------------------------------------------------------------
// 编译版本 GS2004.06.12
// 用户版本 2011/02/07 22:19
// 版权所有
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
//   每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
开拓者代码(2)代码学习各种买卖指令及实例
MACD多周期共振系统
Aberration策略
基于凯特纳通道的交易系统(多)
通达信指标公式编写教程[完整版]
SAR交易系统
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服