js R-Breaker

Author: 太极, Date: 2017-02-20 11:31:05
Tags: Trend

R-Breaker


NPeriod=2 //周期
f1=0.47   //中轨上下顶部区间系数
f2=0.07   //中轨上下区间系数
f3=0.25   //上下轨系数

//==========================================
//API: Chart 函数使用的简单例子(画图功能)
var chart = { // 这个 chart 在JS 语言中 是对象, 在使用Chart 函数之前我们需要声明一个配置图表的对象变量chart。
  __isStock: true,                                    // 标记是否为一般图表,有兴趣的可以改成 false 运行看看。
  tooltip: {xDateFormat: '%Y-%m-%d %H:%M:%S, %A'},    // 缩放工具
  title : { text : '行情分析图'},                       // 标题
  rangeSelector: {                                    // 选择范围
      buttons:  [{type: 'hour',count: 1, text: '1h'}, {type: 'hour',count: 3, text: '3h'}, {type: 'hour', count: 8, text: '8h'}, {type: 'all',text: 'All'}],
      selected: 0,
      inputEnabled: false
  },
  xAxis: { type: 'datetime'},                         // 坐标轴横轴 即:x轴, 当前设置的类型是 :时间
  yAxis : {                                           // 坐标轴纵轴 即:y轴, 默认数值随数据大小调整。
      title:{text: '行情演算'},                        // 标题
      opposite:false,                                // 是否启用右边纵轴
  },
  series : [                                          // 数据系列,该属性保存的是 各个 数据系列(线, K线图, 标签等..)
      {name:"0X",id:"0",color:'#FF83FA',data:[]},
      {name:"1X",id:"1",color:'#FF3E96',dashStyle:'shortdash',data:[]},
      {name:"2X",id:"2",color:'#FF0000',data:[]},

      {name:"3X",id:"3",color:'#7D26CD',dashStyle:'shortdash',data:[]}, //

      {name:"4X",id:"4",color:'#2B2B2B',data:[]},
      {name:"5X",id:"5",color:'#707070',dashStyle:'shortdash',data:[]},
      {name:"6X",id:"6",color:'#778899',data:[]},

      {name:"7X",id:"7",color:'#0000CD',data:[]},

      //RGB颜色对照表  http://www.114la.com/other/rgb.htm
  ]
};

/*
//Pivot Points策略
chart["series"][0]["name"]="阻力3:";
chart["series"][1]["name"]="阻力2:";
chart["series"][2]["name"]="阻力1:";

chart["series"][3]["name"]="枢轴点:";

chart["series"][4]["name"]="支撑位1:";
chart["series"][5]["name"]="支撑位2:";
chart["series"][6]["name"]="支撑位3:";
chart["series"][6]["name"]="当前价格:";
*/
///*
//R-Breaker策略
chart["series"][0]["name"]="Bbreak_A1:";
chart["series"][1]["name"]="Ssetup_A2:";
chart["series"][2]["name"]="Senter_A3:";

chart["series"][4]["name"]="Benter_B1:";
chart["series"][5]["name"]="Sbreak_B2:";
chart["series"][6]["name"]="Bsetup_B3:";
chart["series"][7]["name"]="当前价格:";
//*/


var ObjChart = Chart(chart);  // 调用 Chart 函数,初始化 图表。
ObjChart.reset();           // 清空
function onTick(e){
        var records = _C(e.GetRecords);  //返回一个K线历史
        var ticker = _C(e.GetTicker);    //返回一个Ticker结构
        var account = _C(e.GetAccount);  //返回主交易所账户信息

        var High = TA.Highest(records, NPeriod, 'High'); //最高价
        var Close = TA.Lowest(records, NPeriod, 'Close');       //收盘价
        var Low = TA.Lowest(records, NPeriod, 'Low');   //最低价

        /*
        //Pivot Points策略
        //A上 7235 A中 7259 A下 7275 B上 7195 B中 7155 B下 7179
        Pivot = (High+Close+Low)/3 //枢轴点

        var Senter=High+2*(Pivot-Low)  //阻力3
        var Ssetup=Pivot+(High-Low)  //阻力2
        var Bbreak=2*Pivot-Low  //阻力1

        var Benter=2*Pivot-High  //支撑位1
        var Sbreak=Pivot-(High-Low)  //支撑位2
        var Bsetup=Low-2*(High-Pivot)  //支撑位3
        //画线
        var nowTime = new Date().getTime(); //获取时间戳,
        ObjChart.add([0, [nowTime,_N(Senter,3)]]); //阻力3
        ObjChart.add([1, [nowTime,_N(Ssetup,3)]]); //阻力2
        ObjChart.add([2, [nowTime,_N(Bbreak,3)]]); //阻力1

        ObjChart.add([3, [nowTime,_N(Pivot,3)]]); //枢轴点

        ObjChart.add([4, [nowTime,_N(Benter,3)]]);  //支撑位1
        ObjChart.add([5, [nowTime,_N(Sbreak,3)]]);  //支撑位2
        ObjChart.add([6, [nowTime,_N(Bsetup,3)]]);  //支撑位3

        ObjChart.add([7, [nowTime,_N(ticker.Last,3)]]); //最后成交价

        ObjChart.update(chart);  // 更新图表以显示出来。
        */


        ///*
        //R-Breaker策略
        //A上 7261.46 A中 7246.76 A下 7228.68 B上 7204.48 B中 7187.96 B下 7173.26
        var Ssetup = High + f1 * (Close - Low);  //A中
        var Bsetup = Low - f1 * (High - Close);  //B下

        var Bbreak = Ssetup + f3 * (Ssetup - Bsetup);  //A上
        var Senter = ((1 + f2) / 2) * (High + Close) - f2 * Low;  //A下

        var Benter = ((1 + f2) / 2) * (Low + Close) - f2 * High;  //B上
        var Sbreak = Bsetup - f3 * (Ssetup - Bsetup);  //B中
        //画线
        var nowTime = new Date().getTime(); //获取时间戳,
        ObjChart.add([0, [nowTime,_N(Bbreak,3)]]); //A上
        ObjChart.add([1, [nowTime,_N(Ssetup,3)]]); //A中
        ObjChart.add([2, [nowTime,_N(Senter,3)]]); //A下

        //ObjChart.add([3, [nowTime,_N(Pivot,3)]]); //枢轴点

        ObjChart.add([4, [nowTime,_N(Benter,3)]]);  //B上
        ObjChart.add([5, [nowTime,_N(Sbreak,3)]]);  //B中
        ObjChart.add([6, [nowTime,_N(Bsetup,3)]]);  //B下

        ObjChart.add([7, [nowTime,_N(ticker.Last,3)]]); //最后成交价

        ObjChart.update(chart);  // 更新图表以显示出来。
        //*/

        Log('A上',_N(Bbreak,3),'A中',_N(Ssetup,3),'A下',_N(Senter,3),'B上',_N(Benter,3),'B中',_N(Bsetup,3),'B下',_N(Sbreak,3));
}



function main() {
    Log("策略启动");
    while(true){
        onTick(exchanges[0]);
        Sleep(1000);
    }
}





Related

More