散戶指標 - 小台多空比的查詢實作

更新於 2024/09/16閱讀時間約 1 分鐘

自從筆者研究程式交易之後,就發現自己以往的操作模式非常符合散戶小台多空比的趨勢,現在則發現微台多空比更符合,不愧為韭菜中的韭菜!

這篇文章也是網路爬蟲的應用之一,透過台灣期貨交易所的公開資料來計算散戶小台多空比,也就是將

小台指散戶多空比 = 小台指散戶留倉量/小台指全體未平倉量 = -1 * 小台指三大法人未平倉量/小台全體未平倉量

其原理是小台指散戶多空比,通常視為散戶籌碼指標,與散戶指標對作,反而容易賺錢。正值越大,表示散戶做多部位越多;負值越大,表示散戶做空部位越多。

需要注意的是台灣期貨交易所產生的資料是五大碼(Big-5)格式,所以我們需要轉換為UTF格式做後續處理。

        private decimal RetailMxf(DateTime date)
{
decimal retailMxfLongShortRatio = 0;
try
{
string day = goodday(date, "");
string query = goodday(date, "/");
string path = Path.Combine(@s_homepath, day, "futDataDown_" + day + ".csv");

List<string> csvData = new();
string url = "https://www.taifex.com.tw/cht/3/futDataDown";
if (!File.Exists(path))
{
Filebase.CreateDir(day, s_homepath);
using (var wb = new WebClient())
{
string responseInString = string.Empty;
//wb.Headers.Add("Content-Type", "multipart/form-data");
var data = new NameValueCollection();
data.Add("down_type", "1");
data.Add("queryStartDate", query);
data.Add("queryEndDate", query);
data.Add("commodity_id", "MTX");

var response = wb.UploadValues(url, "POST", data);

if (response != null)
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
responseInString = Encoding.GetEncoding(950).GetString(response);
File.WriteAllText(path, responseInString);
csvData = responseInString.Split("\r\n").Skip(1).Where(row => row.Length > 0).ToList();
}
}
}
else
{
csvData = File.ReadAllLines(path).Skip(1).Where(row => row.Length > 0).ToList();
}

decimal mxfMarketOi = 0;
for (int i = 0; i < csvData.Count; i++)
{
string[] csv = csvData[i].Split(",");

// 僅取日盤並排除價差合約
if (csv.Count() == 20 && csv[17] == "一般" && csv[18] == "")
{
// 計算小型臺指全市場未平倉口數
mxfMarketOi += Convert.ToDecimal(csv[11]);
}
}

path = Path.Combine(@s_homepath, day, "futContractsDate_" + day + ".csv");
url = "https://www.taifex.com.tw/cht/3/futContractsDateDown";
if (!File.Exists(path))
{
Filebase.CreateDir(day, s_homepath);
using (var wb = new WebClient())
{
string responseInString = string.Empty;
//wb.Headers.Add("Content-Type", "multipart/form-data");
var data = new NameValueCollection();
data.Add("queryStartDate", query);
data.Add("queryEndDate", query);
data.Add("commodityId", "MXF");

var response = wb.UploadValues(url, "POST", data);

if (response != null)
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
responseInString = Encoding.GetEncoding(950).GetString(response);
File.WriteAllText(path, responseInString);
csvData = responseInString.Split("\r\n").Skip(1).Where(row => row.Length > 0).ToList();
}
}
}
else
{
csvData = File.ReadAllLines(path).Skip(1).Where(row => row.Length > 0).ToList();
}

decimal dealersLongOiVolume = 0, sitcLongOiVolume = 0, finiLongOiVolume = 0;
decimal dealersShortOiVolume = 0, sitcShortOiVolume = 0, finiShortOiVolume = 0;

for (int i = 0; i < csvData.Count; i++)
{
string[] csv = csvData[i].Split(",");

if (csv.Count() == 15)
{
if (csv[2] == "自營商")
{
dealersLongOiVolume = Convert.ToDecimal(csv[9]);
dealersShortOiVolume = Convert.ToDecimal(csv[11]);
}

if (csv[2] == "投信")
{
sitcLongOiVolume = Convert.ToDecimal(csv[9]);
sitcShortOiVolume = Convert.ToDecimal(csv[11]);
}

if (csv[2] == "外資及陸資")
{
finiLongOiVolume = Convert.ToDecimal(csv[9]);
finiShortOiVolume = Convert.ToDecimal(csv[11]);
}
}
}

// 計算三大法人小型臺指多方未平倉口數
var instInvestorsMxfLongOi = dealersLongOiVolume + sitcLongOiVolume + finiLongOiVolume;

// 計算三大法人小型臺指空方未平倉口數
var instInvestorsMxfShortOi = dealersShortOiVolume + sitcShortOiVolume + finiShortOiVolume;

// 計算散戶小型臺指多方未平倉口數
var retailMxfLongOi = mxfMarketOi - instInvestorsMxfLongOi;

// 計算散戶小型臺指空方未平倉口數
var retailMxfShortOi = mxfMarketOi - instInvestorsMxfShortOi;

// 散戶小型臺指淨未平倉口數
var retailMxfNetOi = retailMxfLongOi - retailMxfShortOi;

// 計算散戶小台多空比
retailMxfLongShortRatio = Math.Round(retailMxfNetOi / mxfMarketOi * 10000) / 10000;
}
catch (Exception e)
{
Debug.WriteLine("Exception " + e);
}
// https://www.macromicro.me/charts/20069/tw-mtx-long-to-short-ratio-of-individual-player
// 正值越大,表示散戶做多部位越多;負值越大,表示散戶做空部位越多
//Debug.WriteLine("散戶小台多空比 " + retailMxfLongShortRatio);
return retailMxfLongShortRatio * 100;
}

前文有提到微台多空比更符合散戶趨勢,理論上可以把索取資料格式從 MTX 改成 TMF,並採用類似的計算公式即可,不過筆者現在幾乎躺平,有機會再來實作。

類似的擷取方式也適用在臺指選擇權波動率指數、買賣權未平倉量、外資選擇權,資料網址如下,實作就不一一列出。

string url = "https://www.taifex.com.tw/cht/7/getVixData?filesname=" + day;
string url = "https://www.taifex.com.tw/cht/3/pcRatioDown";
string url = "https://www.taifex.com.tw/cht/3/optContractsDateDown";

在此還是祝福大家都能夠賺大錢~

即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
avatar-img
4會員
10內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Gary Hu的沙龍 的其他內容
透過C#去證券櫃檯買賣中心爬取買賣日報表的程式介紹
透過C#實作台灣證券交易所買賣日報表查詢機器人
本文將討論在EWDK或WDK環境下如何取得時區差值與日光節約時間開啟與否的相關資訊,並記錄下相關研究結果。
身為會寫一點程式碼的工程師,量化交易投資無疑是最具吸引力的投資方式。試想只要寫個小程式定期去追蹤股市大盤交易指數,然後自動下單買入賣出,就會賺進源源不絕的財富,光用想的口水都快流下來了。 坐而言不如起而行。這邊有幾個小問題需要克服: 即時報價 下單買賣 交易策略
透過C#去證券櫃檯買賣中心爬取買賣日報表的程式介紹
透過C#實作台灣證券交易所買賣日報表查詢機器人
本文將討論在EWDK或WDK環境下如何取得時區差值與日光節約時間開啟與否的相關資訊,並記錄下相關研究結果。
身為會寫一點程式碼的工程師,量化交易投資無疑是最具吸引力的投資方式。試想只要寫個小程式定期去追蹤股市大盤交易指數,然後自動下單買入賣出,就會賺進源源不絕的財富,光用想的口水都快流下來了。 坐而言不如起而行。這邊有幾個小問題需要克服: 即時報價 下單買賣 交易策略
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
市場上有存在著一群喜歡作空的交易者 權證小哥、空總,這些都是 當總體經濟、整體產業、景氣循環、事件 都能夠跑出一個大方向,尤其是事件面 最近一次也是最顯著的事件就是巴黎奧運 8月4日星期日,羽球男子雙打中華隊拿到金牌 而其對手就是中國隊,當時發生了這個事件 出現了這個消息,我就已經公開
Thumbnail
因為選擇權來不急萎縮,只好用超大幅震盪 昨天頭尾如果波浪抓得好 一天3000點沒問題啊 光夜盤 開盤之後20400~19955 這樣450點 然後19955~20748 800點 20748~20230 又是500點 為啥那麼洗? 就是選擇權太貴了 上週五開始 一跌2700點
Thumbnail
臺股最近短線修正,投資者心情不安。長線交易者應有獲利,若有虧損則可能存在交易行為問題。投機和賭博只在一線之隔,應在進出場時機掌握好理由。無論交易週期長短,都應做好完善的交易規劃。
Thumbnail
可能包含敏感內容
現在指數比以前15000點還要大了,20000點的空間就會造成更大的震幅。如果單日小於200點的話其實算是小漲或小跌。因為就像是2024.8.2還有2024.7.26都出現大跌千點的行情。這時候選擇權翻倍獲利賺錢的機會就超級大。此刻不把握這種不用挑股票,只需要看指數的漲跌,操作對象只有加權指數,多單
Thumbnail
開立專欄至今也快滿兩年了,先感謝各位的支持與指教,成立專欄的初衷是希望找到志同道合的夥伴,一起挑戰外匯市場,畢竟一個人也許走得快,但是一群人才能走得久。 交易的世界是孤獨的,每一個決定,不管是賺錢、賠錢都得自己面對,當然有潮起也會有潮落,不太可能有人永遠順風,不過至少在逆風的時候,身邊有一群志同道
Thumbnail
工具的好壞,先取決於心態;再取決於受眾 自從7/29微型小台上路之後,最大的問題是交易成本過高(手續費)。 缺點後面是機會,現在台指波動率較高的情況下,微小台對於期貨新手有甚麼好處? 我認為有幾個點可以思考: 1.錯價套利: 同時間不同規格的產品容易出現不同價碼,我們稱之為錯價。7/29夜
Thumbnail
對沖就是一種避險方式,當一開始建立的部位已經不再是「低風險機會時」,就必須隨著目前趨勢建立期貨或選擇權部位,藉此鎖住獲利。使用對沖避險一定會比裸賣的策略獲取更少的利潤,但它可以有效控制虧損風險,防止帳戶瞬間承受巨大虧損。
Thumbnail
當你剛學會技術分析時,可能會想趕快賺錢,但要提醒自己,短線交易需要合理的心態管理,否則容易陷入剛學會技術分析時過度交易瘋狂大賠的局面。這篇通過心理學家史金納的老鼠實驗,帶給你交易心態上的啟發。
「道狗」投資法是一個非常簡單的股票操作方法,這個方法投資標的明確,一年中買賣各一次。這對因工作繁忙而沒有太多時間研究和操作股票的小散非常適用。持有股票的時間是一年,在稅率上也比較合理,對一般的證券賬戶和退休賬戶都適用。 具體操作方法就是在每年年初的時候把道瓊指數的30支股票中股息率最高的5支股票同
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
市場上有存在著一群喜歡作空的交易者 權證小哥、空總,這些都是 當總體經濟、整體產業、景氣循環、事件 都能夠跑出一個大方向,尤其是事件面 最近一次也是最顯著的事件就是巴黎奧運 8月4日星期日,羽球男子雙打中華隊拿到金牌 而其對手就是中國隊,當時發生了這個事件 出現了這個消息,我就已經公開
Thumbnail
因為選擇權來不急萎縮,只好用超大幅震盪 昨天頭尾如果波浪抓得好 一天3000點沒問題啊 光夜盤 開盤之後20400~19955 這樣450點 然後19955~20748 800點 20748~20230 又是500點 為啥那麼洗? 就是選擇權太貴了 上週五開始 一跌2700點
Thumbnail
臺股最近短線修正,投資者心情不安。長線交易者應有獲利,若有虧損則可能存在交易行為問題。投機和賭博只在一線之隔,應在進出場時機掌握好理由。無論交易週期長短,都應做好完善的交易規劃。
Thumbnail
可能包含敏感內容
現在指數比以前15000點還要大了,20000點的空間就會造成更大的震幅。如果單日小於200點的話其實算是小漲或小跌。因為就像是2024.8.2還有2024.7.26都出現大跌千點的行情。這時候選擇權翻倍獲利賺錢的機會就超級大。此刻不把握這種不用挑股票,只需要看指數的漲跌,操作對象只有加權指數,多單
Thumbnail
開立專欄至今也快滿兩年了,先感謝各位的支持與指教,成立專欄的初衷是希望找到志同道合的夥伴,一起挑戰外匯市場,畢竟一個人也許走得快,但是一群人才能走得久。 交易的世界是孤獨的,每一個決定,不管是賺錢、賠錢都得自己面對,當然有潮起也會有潮落,不太可能有人永遠順風,不過至少在逆風的時候,身邊有一群志同道
Thumbnail
工具的好壞,先取決於心態;再取決於受眾 自從7/29微型小台上路之後,最大的問題是交易成本過高(手續費)。 缺點後面是機會,現在台指波動率較高的情況下,微小台對於期貨新手有甚麼好處? 我認為有幾個點可以思考: 1.錯價套利: 同時間不同規格的產品容易出現不同價碼,我們稱之為錯價。7/29夜
Thumbnail
對沖就是一種避險方式,當一開始建立的部位已經不再是「低風險機會時」,就必須隨著目前趨勢建立期貨或選擇權部位,藉此鎖住獲利。使用對沖避險一定會比裸賣的策略獲取更少的利潤,但它可以有效控制虧損風險,防止帳戶瞬間承受巨大虧損。
Thumbnail
當你剛學會技術分析時,可能會想趕快賺錢,但要提醒自己,短線交易需要合理的心態管理,否則容易陷入剛學會技術分析時過度交易瘋狂大賠的局面。這篇通過心理學家史金納的老鼠實驗,帶給你交易心態上的啟發。
「道狗」投資法是一個非常簡單的股票操作方法,這個方法投資標的明確,一年中買賣各一次。這對因工作繁忙而沒有太多時間研究和操作股票的小散非常適用。持有股票的時間是一年,在稅率上也比較合理,對一般的證券賬戶和退休賬戶都適用。 具體操作方法就是在每年年初的時候把道瓊指數的30支股票中股息率最高的5支股票同