能否自動指定改合約的連續合約?
作者:金字塔 來源:cxh99.com 發布時間:2021年03月02日
-
咨詢內容:
我的程序必須在具體合約實施, 例如SF2009,CF2009, 但是我又想直接調用該合約的連續合約的日線的指標,也就是問能否自動指定改合約的連續合約? 例如這個程序放在SF2009 5分鐘上能自動調用SF的連續合約, 放到CF2009 5分鐘上又會自動調用CF的連續合約, 不需要在不同品種中修改程序, 要怎樣寫???
?
-
金字塔客服:
?s:=STRREMOVE(STKLABEL,STRLEN(STKLABEL)-2,2);
lxstr:=s+'00';//連續品種代碼
這樣有了品種代碼。你后面就可以調用連續的數據了。在跨周期調用里面指定品種代碼是lxstr 就行了。
?
?來源:程序化久久網( www.kzuj.com.cn )
-
用戶回復:
使用你給的程序, 放在AP10 的一分鐘身上, 得出s是:100001.000, lsstr:1000002.000,? 并不會返回AP00 呀? 是不是你程序有錯?
?
-
網友回復:
字符串不能直接在圖表變量值輸出。必須通過繪圖函數或者EXPLAIN函數輸出顯示。
上面的代碼沒沒有對雙年份合約和原油進行處理。需要調整下。以保證邏輯的健壯性。
?
STR:=STRTRIMRIGHT( STKLABEL, '0123456789');
//雙年份合約,豆一和白糖雖然取消雙年份,但是金字塔為保證老用戶策略的正常操作,所以保持不變。因此依舊需要區分。
if STRCMP(STR,'AY')=0 or? STRCMP(STR,'BUY')=0 OR? STRCMP(STR,'SRY') THEN BEGIN
?STR:=STRREPLACE(STR , 'Y','X' );
END
//EXPLAIN( 1, STR );
//區分處理原油和其他品種的連續代碼
STR00:=IF(STRCMP(STR,'SC')=0,STRCAT(STR , '0000'),STRCAT( STR, '00'));
EXPLAIN( 1, STR00 );
[此貼子已經被作者于2020/7/16 8:29:48編輯過]
?
-
網友回復:
你的程序跟第一次給的程序完全不一樣,? ?我只需要拿到一個連續合約代碼, 輸出值是 STR00 嗎?我直接調用
STR00? 就可以了嗎? 例如??
STKINDI('str00','macd.def',0,6,-1),noaxis;