等级: 免费版
- 注册:
- 2023-9-29
- 曾用名:
|
基于10分钟级别的逐K运行模式的'精细化历史评测',如下是我的代码和打印结果.
RUNMODE : 0; //指定逐K模式
VARIABLE : contract_array[5] = ('RB00', //螺纹1 //黑色+建材-----------
'HC00', //热卷2
'I00', //铁矿3
'J00', //焦炭4
'JM00' //焦煤5
);
VARIABLE: DX = 0; //内部数组
M := 32;
BS := 13;
IF BARPOS < M*BS THEN EXIT;
/////////////////////////////////////////////////////////
// 调试输出相关
/////////////////////////////////////////////////////////
DBG_PATH := 'D:\'; //调试输出文件路径
DBG_LOG_FILE := DBG_PATH + '\TestMain_debug.txt'; //调试输出文件名 普通调试相关
reldate := DATE+19000000;
current_date_str := NUMTOSTR(reldate,0);
current_time_str := NUMTOSTR(HOUR,0) & ':' & NUMTOSTR(MINUTE,0) & ':' & NUMTOSTR(SECOND,0);
k_stamp := '[' & current_date_str & ' ' & current_time_str & '] ';
/////////////////////////////////////////////////////////
// end of 调试输出相关
/////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////
//// #MARGIN_AMP指标内容如下:
//// A:=(C/REF(C,1)-1)*100;
//// B:=-(REF(C,1)/C-1)*100;
//// BZJ:=TACCOUNT(41); //#多头保证金率
//// T:=REF(C,1)<C;
//// TK:=IF(T,A,B);
//// BTK:=TK/BZJ;
//// DB:=BTK;
//// DBZ:SUM(DB,0);
/////////////////////////////////////////////////////////
IF NOT(ISLASTBAR) THEN BEGIN
EXIT;
END
recent_bars_n := M*BS;
//当前品种的指标值
CCD := STKINDIEX('','MARGIN_AMP.DBZ',0,-1,0,recent_bars_n);
debug_str := k_stamp&STKLABEL & ' CCD:' & NUMTOSTR(CCD,0);
DEBUGFILE(DBG_LOG_FILE, debug_str, 0);
FOR i = 1 TO 5 DO //各合约
BEGIN
DEBUGFILE(DBG_LOG_FILE, 'i:' & NUMTOSTR(i,0) & ' ' & contract_array[i], 0);
//DEBUGFILE(DBG_LOG_FILE, contract_array[i], 0);
custom_amp := STKINDIEX(contract_array[i], 'MARGIN_AMP.DBZ', 0, -1, 0, recent_bars_n);
IF VALID(custom_amp)=0 THEN
BEGIN
DEBUGFILE(DBG_LOG_FILE, k_stamp& 'custom_amp无效',0);
CONTINUE;
END
DEBUGFILE(DBG_LOG_FILE, k_stamp& 'custom_amp有效',0);
END
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?
x
|