新同学的福利,一个简单的图表模板

Author: 发明者量化-小小梦, Created: 2016-05-22 23:17:48, Updated:

一个简单的图表模板,用法在这里简单介绍下

先上图: 新同学的福利,一个简单的图表模板

原因呢就是在学习双均线策略的时候,对于开仓,平仓点的研究,以及代码的编写没办法直观的去观察,还有就是代码在跟盘测试的时候不直观,来回扒日志头晕目眩, 很想写一个直观显示的图表,根据Z大的代码例子,写了一个简单的图表模板,现在功能很简单,就只有显示实时K线,显示开仓、平仓点。其他功能还没加入(比如一些 自己写的指标显示成线,在K线图中显示出来等..),打算慢慢加入。因为这个还没怎么测试,所以提供给大家学习,实盘慎用。 简单的用法: 暂时导出函数有2个:

 $.SignOP(time,price,amount,state)
 $.Draw(records)

\(.SignOP(time,price,amount,state) 这个函数 是在开仓平仓后紧跟使用,标记开仓平仓到K线用的,参数有4个。 \).Draw(records) 这个函数是画出K线用的,这个函数需要放在,策略的主要循环的开始,参数可以传入null ,让函数自己获取。

下面就用Z大的30行代码例子,使用这个模板接入代码。 代码中只加入了3条语句。(看虚线部分)

 function main(){
	var STATE_IDLE = -1;//空闲状态
	var state = STATE_IDLE;
	var opAmount = 0;
	var initAccount = $.GetAccount();
	Log(initAccount);//输出账户初始信息
	while(true){
---------------------------------------------------------------------------------------------
        $.Draw(null);//  画图表K线
--------------------------------------------------------------------------------------------
        if(state === STATE_IDLE){
        	var n = $.Cross(FastPeriod,SlowPeriod);
        	if(Math.abs(n) >= EnterPeriod){
        		opAmount = parseFloat((initAccount.Stocks * PositionRatio).toFixed(3));
        		var obj = n > 0 ? $.Buy(opAmount) : $.Sell(opAmount);
        		if(obj){
        			opAmount = obj.amount;
        			state = n > 0 ? PD_LONG : PD_SHORT;
        			Log("开仓详情",obj,"交叉周期",n);
        		}
---------------------------------------------------------------------------------------------
                $.SignOP((new Date()).getTime(),obj.price,obj.amount,(n > 0 ? 1 : 2) ); //标记买入  卖出 开仓 
---------------------------------------------------------------------------------------------
        	}
        }else{
        	var n = $.Cross(ExitFastPeriod,ExitSlowPeriod);
        	if(Math.abs(n) >= ExitPeriod && ((state === PD_LONG && n < 0 ) || (state === PD_SHORT && n > 0))){
        		var obj  =  state === PD_LONG? $.Sell(opAmount) : $.Buy(opAmount);
---------------------------------------------------------------------------------------------
                $.SignOP((new Date()).getTime(),obj.price,obj.amount,0); //标记平仓
---------------------------------------------------------------------------------------------
        		state = STATE_IDLE;
        		var nowAccount = $.GetAccount();
        		LogProfit(nowAccount.Balance - initAccount.Balance,"钱:",nowAccount.Balance,"币:",nowAccount.Stocks,"平仓详情:",obj,"交叉周期",n);
        	}
        }
        Sleep(Interval*1000);//暂停10秒
	}
}
系统生成的K线图表

新同学的福利,一个简单的图表模板

模板画出的K线图表

新同学的福利,一个简单的图表模板

代码还不是很完善,欢迎大神斧正,完善。抛砖引玉,欢迎拍砖。


更多内容

leilml 善!

发明者量化-小小梦 继续完善~~让我们的平台更好用。