奇狐社區論壇
在這個頁面顯示本主題全部的 6 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- [問題] 微小台期指 未平倉 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=24091)


由 ichiro2016 在 2024-09-27 08:34 發表:

眨眼 [問題] 微小台期指 未平倉

請教,近期增設的 微小台 當日的全市場未平倉,及法人多單未平倉,法人空單未平倉餘額的寫法
參照之前 小台未平倉,及小台法人未平倉的寫法如下: 求得 小台散戶多空比( 請詳附圖,使用上是OK的)

小台
//請在台當月或小台當月中跑
OPLD:=OPTIONLASTDAY('FITX1');
MM:=mod(floor(OPLD/100),100);
ISLD:=TradeDATE=OPLD;
New:=TradeDATE>=1180702; //新制
U01:=MM=01 or MM=12 or (MM=11 and New);
U02:=MM=01 or MM=02 or (MM=12 and New);
U03:=Not(MM=04 and New=0);
U04:=MM=03 or MM=04 or (MM=02 and New);
U05:=MM=04 or MM=05 or (MM=03 and New);
U06:=Not(MM=07 and New=0);
U07:=MM=06 or MM=07 or (MM=05 and New);
U08:=MM=07 or MM=08 or (MM=06 and New);
U09:=Not(MM=10 and New=0);
U10:=MM=09 or MM=10 or (MM=08 and New);
U11:=MM=10 or MM=11 or (MM=09 and New);
U12:=Not(MM=01 and New=0);
MTX01:="FIMTXF$OPENINT"*U01*Not(ISLD and MM=01);
MTX02:="FIMTXG$OPENINT"*U02*Not(ISLD and MM=02);
MTX03:="FIMTXH$OPENINT"*U03*Not(ISLD and MM=03);
MTX04:="FIMTXJ$OPENINT"*U04*Not(ISLD and MM=04);
MTX05:="FIMTXK$OPENINT"*U05*Not(ISLD and MM=05);
MTX06:="FIMTXM$OPENINT"*U06*Not(ISLD and MM=06);
MTX07:="FIMTXN$OPENINT"*U07*Not(ISLD and MM=07);
MTX08:="FIMTXQ$OPENINT"*U08*Not(ISLD and MM=08);
MTX09:="FIMTXU$OPENINT"*U09*Not(ISLD and MM=09);
MTX10:="FIMTXV$OPENINT"*U10*Not(ISLD and MM=10);
MTX11:="FIMTXX$OPENINT"*U11*Not(ISLD and MM=11);
MTX12:="FIMTXZ$OPENINT"*U12*Not(ISLD and MM=12);
MTXOI:=MTX01+MTX02+MTX03+MTX04+MTX05+MTX06+MTX07+MTX08+MTX09+MTX10+MTX11+MTX12;//小台未平倉
//法人小台
CK:=SDFR('MXF',7)+SDFR('MXF',19)+SDFR('MXF',31),colorred;//末平倉多口
PK:=SDFR('MXF',9)+SDFR('MXF',21)+SDFR('MXF',33),colorgreen;//末平倉空口
CV:=SDFR('MXF',8)+SDFR('MXF',20)+SDFR('MXF',32);//末平倉多額
PV:=SDFR('MXF',10)+SDFR('MXF',22)+SDFR('MXF',34);//末平倉空額
法人末平倉淨額:=CV-PV,linestick,noaxis;
//散戶
SC:=MTXOI-CK;
SP:=MTXOI-PK;
SOI:SC-SP,linethick0;
散戶多空比:SOI/MTXOI*100,colorstick,linethick2;

------------------------------------
問題----新增 的 微台期指部分 ,參照上列,卻得不到 答案.
請版主能 指正,是否引用數據 錯誤. 謝謝

//請在台當月或小台當月中跑
OPLD:=OPTIONLASTDAY('FITM1');
MM:=mod(floor(OPLD/100),100);
ISLD:=TradeDATE=OPLD;
New:=TradeDATE>=1180702; //新制
U01:=MM=01 or MM=12 or (MM=11 and New);
U02:=MM=01 or MM=02 or (MM=12 and New);
U03:=Not(MM=04 and New=0);
U04:=MM=03 or MM=04 or (MM=02 and New);
U05:=MM=04 or MM=05 or (MM=03 and New);
U06:=Not(MM=07 and New=0);
U07:=MM=06 or MM=07 or (MM=05 and New);
U08:=MM=07 or MM=08 or (MM=06 and New);
U09:=Not(MM=10 and New=0);
U10:=MM=09 or MM=10 or (MM=08 and New);
U11:=MM=10 or MM=11 or (MM=09 and New);
U12:=Not(MM=01 and New=0);
MTX01:="FITMF$OPENINT"*U01*Not(ISLD and MM=01);
MTX02:="FITMG$OPENINT"*U02*Not(ISLD and MM=02);
MTX03:="FITMH$OPENINT"*U03*Not(ISLD and MM=03);
MTX04:="FITMJ$OPENINT"*U04*Not(ISLD and MM=04);
MTX05:="FITMK$OPENINT"*U05*Not(ISLD and MM=05);
MTX06:="FITMM$OPENINT"*U06*Not(ISLD and MM=06);
MTX07:="FITMN$OPENINT"*U07*Not(ISLD and MM=07);
MTX08:="FITMQ$OPENINT"*U08*Not(ISLD and MM=08);
MTX09:="FITMU$OPENINT"*U09*Not(ISLD and MM=09);
MTX10:="FITMV$OPENINT"*U10*Not(ISLD and MM=10);
MTX11:="FITMX$OPENINT"*U11*Not(ISLD and MM=11);
MTX12:="FITMZ$OPENINT"*U12*Not(ISLD and MM=12);
MTXOI:=MTX01+MTX02+MTX03+MTX04+MTX05+MTX06+MTX07+MTX08+MTX09+MTX10+MTX11+MTX12;//小台未平倉
//法人微小台
CK:=SDFR('TMF',7)+SDFR('TMF',19)+SDFR('TMF',31),colorred;//末平倉多口
PK:=SDFR('TMF',9)+SDFR('TMF',21)+SDFR('TMF',33),colorgreen;//末平倉空口
CV:=SDFR('TMF',8)+SDFR('TMF',20)+SDFR('TMF',32);//末平倉多額
PV:=SDFR('TMF',10)+SDFR('TMF',22)+SDFR('TMF',34);//末平倉空額法人末平倉淨額:=CV-PV,linestick,noaxis;
//微散戶
SC:=MTXOI-CK;
SP:=MTXOI-PK;
SOI:SC-SP,linethick0;
微台散戶多空比:SOI/MTXOI*100,colorstick,linethick2;


由 cgjj 在 2024-09-27 09:19 發表:

回覆: [問題] 微小台期指 未平倉

引用:
最初由 ichiro2016 發表
請教,近期增設的 微小台 當日的全市場未平倉,及法人多單未平倉,法人空單未平倉餘額的寫法
參照之前 小台未平倉,及小台法人未平倉的寫法如下: 求得 小台散戶多空比( 請詳附圖,使用上是OK的)

小台
//請在台當月或小台當月中跑
OPLD:=OPTIONLASTDAY('FITX1');
MM:=mod(floor(OPLD/100),100);
ISLD:=TradeDATE=OPLD;
New:=TradeDATE>=1180702; //新制
U01:=MM=01 or MM=12 or (MM=11 and New);
U02:=MM=01 or MM=02 or (MM=12 and New);
U03:=Not(MM=04 and New=0);
U04:=MM=03 or MM=04 or (MM=02 and New);
U05:=MM=04 or MM=05 or (MM=03 and New);
U06:=Not(MM=07 and New=0);
U07:=MM=06 or MM=07 or (MM=05 and New);
U08:=MM=07 or MM=08 or (MM=06 and New);
U09:=Not(MM=10 and New=0);
U10:=MM=09 or MM=10 or (MM=08 and New);
U11:=MM=10 or MM=11 or (MM=09 and New);
U12:=Not(MM=01 and New=0);
MTX01:="FIMTXF$OPENINT"*U01*Not(ISLD and MM=01);
MTX02:="FIMTXG$OPENINT"*U02*Not(ISLD and MM=02);
MTX03:="FIMTXH$OPENINT"*U03*Not(ISLD and MM=03);
MTX04:="FIMTXJ$OPENINT"*U04*Not(ISLD and MM=04);
MTX05:="FIMTXK$OPENINT"*U05*Not(ISLD and MM=05);
MTX06:="FIMTXM$OPENINT"*U06*Not(ISLD and MM=06);
MTX07:="FIMTXN$OPENINT"*U07*Not(ISLD and MM=07);
MTX08:="FIMTXQ$OPENINT"*U08*Not(ISLD and MM=08);
MTX09:="FIMTXU$OPENINT"*U09*Not(ISLD and MM=09);
MTX10:="FIMTXV$OPENINT"*U10*Not(ISLD and MM=10);
MTX11:="FIMTXX$OPENINT"*U11*Not(ISLD and MM=11);
MTX12:="FIMTXZ$OPENINT"*U12*Not(ISLD and MM=12);
MTXOI:=MTX01+MTX02+MTX03+MTX04+MTX05+MTX06+MTX07+MTX08+MTX09+MTX10+MTX11+MTX12;//小台未平倉
//法人小台
CK:=SDFR('MXF',7)+SDFR('MXF',19)+SDFR('MXF',31),colorred;//末平倉多口
PK:=SDFR('MXF',9)+SDFR('MXF',21)+SDFR('MXF',33),colorgreen;//末平倉空口
CV:=SDFR('MXF',8)+SDFR('MXF',20)+SDFR('MXF',32);//末平倉多額
PV:=SDFR('MXF',10)+SDFR('MXF',22)+SDFR('MXF',34);//末平倉空額
法人末平倉淨額:=CV-PV,linestick,noaxis;
//散戶
SC:=MTXOI-CK;
SP:=MTXOI-PK;
SOI:SC-SP,linethick0;
散戶多空比:SOI/MTXOI*100,colorstick,linethick2;

------------------------------------
問題----新增 的 微台期指部分 ,參照上列,卻得不到 答案.
請版主能 指正,是否引用數據 錯誤. 謝謝

//請在台當月或小台當月中跑
OPLD:=OPTIONLASTDAY('FITM1');
MM:=mod(floor(OPLD/100),100);
ISLD:=TradeDATE=OPLD;
New:=TradeDATE>=1180702; //新制
U01:=MM=01 or MM=12 or (MM=11 and New);
U02:=MM=01 or MM=02 or (MM=12 and New);
U03:=Not(MM=04 and New=0);
U04:=MM=03 or MM=04 or (MM=02 and New);
U05:=MM=04 or MM=05 or (MM=03 and New);
U06:=Not(MM=07 and New=0);
U07:=MM=06 or MM=07 or (MM=05 and New);
U08:=MM=07 or MM=08 or (MM=06 and New);
U09:=Not(MM=10 and New=0);
U10:=MM=09 or MM=10 or (MM=08 and New);
U11:=MM=10 or MM=11 or (MM=09 and New);
U12:=Not(MM=01 and New=0);
MTX01:="FITMF$OPENINT"*U01*Not(ISLD and MM=01);
MTX02:="FITMG$OPENINT"*U02*Not(ISLD and MM=02);
MTX03:="FITMH$OPENINT"*U03*Not(ISLD and MM=03);
MTX04:="FITMJ$OPENINT"*U04*Not(ISLD and MM=04);
MTX05:="FITMK$OPENINT"*U05*Not(ISLD and MM=05);
MTX06:="FITMM$OPENINT"*U06*Not(ISLD and MM=06);
MTX07:="FITMN$OPENINT"*U07*Not(ISLD and MM=07);
MTX08:="FITMQ$OPENINT"*U08*Not(ISLD and MM=08);
MTX09:="FITMU$OPENINT"*U09*Not(ISLD and MM=09);
MTX10:="FITMV$OPENINT"*U10*Not(ISLD and MM=10);
MTX11:="FITMX$OPENINT"*U11*Not(ISLD and MM=11);
MTX12:="FITMZ$OPENINT"*U12*Not(ISLD and MM=12);
MTXOI:=MTX01+MTX02+MTX03+MTX04+MTX05+MTX06+MTX07+MTX08+MTX09+MTX10+MTX11+MTX12;//小台未平倉
//法人微小台
CK:=SDFR('TMF',7)+SDFR('TMF',19)+SDFR('TMF',31),colorred;//末平倉多口
PK:=SDFR('TMF',9)+SDFR('TMF',21)+SDFR('TMF',33),colorgreen;//末平倉空口
CV:=SDFR('TMF',8)+SDFR('TMF',20)+SDFR('TMF',32);//末平倉多額
PV:=SDFR('TMF',10)+SDFR('TMF',22)+SDFR('TMF',34);//末平倉空額法人末平倉淨額:=CV-PV,linestick,noaxis;
//微散戶
SC:=MTXOI-CK;
SP:=MTXOI-PK;
SOI:SC-SP,linethick0;
微台散戶多空比:SOI/MTXOI*100,colorstick,linethick2;




OPLD:=OPTIONLASTDAY('FITM1');

需要修正為
OPLD:=OPTIONLASTDAY('FITX1');

因為微台期沒有相應的選擇權存在,必須用大台來指定


由 ichiro2016 在 2024-09-30 15:06 發表:

謝謝 版主指正. 依照修正,但數據仍無法求出.請詳附圖說明.是否能 指導修正. 謝謝

定義:
微小台多空比
全市場OI - 三大法人多單=微小台多單
全市場OI - 三大法人空單=微小台空單
微小台指數多空比=(微小台多單/微小台空單)/全市場OI


由 cgjj 在 2024-09-30 15:25 發表:

引用:
最初由 ichiro2016 發表
謝謝 版主指正. 依照修正,但數據仍無法求出.請詳附圖說明.是否能 指導修正. 謝謝

定義:
微小台多空比
全市場OI - 三大法人多單=微小台多單
全市場OI - 三大法人空單=微小台空單
微小台指數多空比=(微小台多單/微小台空單)/全市場OI



那樣引用是OK的
您可以把 := 改為 : ,就可以見到有無曲線產生
有曲線代表該項目有取到值

估計是您程式的其他部份引起的問題


由 cgjj 在 2024-09-30 16:33 發表:

沒有數據輸出~~
是因為微小台有些月份尚無任何數據存在,需要特別處理一下

請在這一行的下面
MTX12:="FITMZ$OPENINT"*U12*Not(ISLD and MM=12);

插入以下內容,將無效的部分填零,使有效數據起點一致,就可以解決該問題
MTX01:=if(barpos>=LBOUND(MTX01) and LBOUND(MTX01),MTX01,0);
MTX02:=if(barpos>=LBOUND(MTX02) and LBOUND(MTX02),MTX02,0);
MTX03:=if(barpos>=LBOUND(MTX03) and LBOUND(MTX03),MTX03,0);
MTX04:=if(barpos>=LBOUND(MTX04) and LBOUND(MTX04),MTX04,0);
MTX05:=if(barpos>=LBOUND(MTX05) and LBOUND(MTX05),MTX05,0);
MTX06:=if(barpos>=LBOUND(MTX06) and LBOUND(MTX06),MTX06,0);
MTX07:=if(barpos>=LBOUND(MTX07) and LBOUND(MTX07),MTX07,0);
MTX08:=if(barpos>=LBOUND(MTX08) and LBOUND(MTX08),MTX08,0);
MTX09:=if(barpos>=LBOUND(MTX09) and LBOUND(MTX09),MTX09,0);
MTX10:=if(barpos>=LBOUND(MTX10) and LBOUND(MTX10),MTX10,0);
MTX11:=if(barpos>=LBOUND(MTX11) and LBOUND(MTX11),MTX11,0);
MTX12:=if(barpos>=LBOUND(MTX12) and LBOUND(MTX12),MTX12,0);


由 ichiro2016 在 2024-10-01 01:28 發表:

謝謝版主, 現在解決 了這個問題.
感謝


全部時間均為台灣時間, 現在時間為06:23
在這個頁面顯示本主題全部的 6 個文章


Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.