iT邦幫忙

2023 iThome 鐵人賽

DAY 23
2
自我挑戰組

用GPT 撰寫選股策略系列 第 23

用 chatgpt 學習使用 pinescript 撰寫交易策略 - Day 23

  • 分享至 

  • xImage
  •  

用 chatgpt 學習使用 pinescript 撰寫交易策略 - Day 23

簡介

使用 Pinescript 實現基於隨機指標(KDJ)的交易策略

策略

隨機指標(KDJ)是一種技術指標,通常用於分析股市和外匯市場的超買和超賣情況,以及趨勢反轉信號。本文將介紹如何使用 Pine Script,這是TradingView的內置腳本語言,來實現一個基於KDJ指標的交易策略。

策略介紹

KDJ指標由三個不同的部分組成:K線,D線和J線。K線是主要線,反映了最近一段時間的價格變化趨勢。D線是K線的平滑線,用於識別長期趨勢。J線是K線和D線之差,可用於確定超買和超賣情況。

PineScript 實作

//@version=4
strategy("Market Structure Strategy", shorttitle="MSS", overlay=true)

// Define high and low points
var float highPoint = na
var float lowPoint = na

if high[1] < high and high[2] < high[1]
    highPoint := high[1]

if low[1] > low and low[2] > low[1]
    lowPoint := low[1]

// Determine trend direction
isUptrend = high > highPoint[1] and low > lowPoint[1]
isDowntrend = high < highPoint[1] and low < lowPoint[1]

// Plot high and low points
plotshape(isUptrend, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(isDowntrend, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Define entry and exit conditions
longCondition = crossover(high, highPoint[1]) and isUptrend
shortCondition = crossunder(low, lowPoint[1]) and isDowntrend

// Entry and exit settings
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.exit("Exit Long", from_entry="Long", when=shortCondition or crossover(high, highPoint[1]))
strategy.exit("Exit Short", from_entry="Short", when=longCondition or crossunder(low, lowPoint[1]))

回測結果

執行結果分析

本金為 1000 USD

淨利:

整體淨利為 30.66 美元,佔投資的 3.07%。
第二筆交易的淨利為 104.43 美元,佔投資的 10.44%。
第三筆交易的淨利為 -73.77 美元,佔投資的 -7.38%。

毛利和毛損:

整體毛利為 404.00 美元,佔投資的 40.4%。
第二筆交易的毛利為 265.52 美元,佔投資的 26.55%。
第三筆交易的毛損為 212.25 美元,佔投資的 21.23%。

最大交易獲利和最大交易虧損:

最大交易獲利為 81.57 美元,佔整體淨利的 7.83%。
最大交易虧損為 86.71 美元,佔整體淨利的 8.29%。

購買和保留退貨:

購買和保留退貨總額為 1,186,747.98 美元,佔投資的 118,674.8%。這個數值似乎異常,可能需要仔細檢查。

夏普比率和 Sortino 比率:

夏普比率為 -0.487,這可能表示整體的淨利不足以補償投資的風險。
Sortino 比率為 -0.514,也反映了相似的風險情況。

盈利因子:

整體的盈利因子為 1.082。
第二筆交易的盈利因子為 1.648。
第三筆交易的盈利因子為 0.652。

持倉損益:

整體持倉損益為 0.17 美元,佔投資的 0.02%。

已付佣金:

已付佣金為 0.00 美元。

總持倉和交易次數:

總持倉為 1。
總共有 974 筆已平倉交易。

勝率:

整體的勝率為 33.47%。
第二筆交易的勝率為 38.6%。
第三筆交易的勝率為 28.34%。

總體而言,交易策略可能需要進一步優化,因為夏普比率和 Sortino 比率都顯示出較高的風險,而勝率也不高。在分析每筆交易時,第二筆交易表現最好,具有較高的盈利因子和良好的勝率。然而,第三筆交易表現不佳,其盈利因子較低,可能需要對策略進行進一步研究和改進。此外,需要仔細檢查購買和保留退貨的數據,因為其異常高的值可能導致其他指標受到影響。

策略指標

結論

KDJ指標是一個強大的技術指標,可以用於識別市場的超買和超賣情況,以及趨勢反轉信號。使用Pine Script,我們可以輕松地實現基於KDJ指標的交易策略。然而,請注意,任何交易策略都需要進一步的優化和風險管理,並不保證獲利。交易前應謹慎研究和測試您的策略。


上一篇
用 chatgpt 學習使用 pinescript 撰寫交易策略 - Day 22
下一篇
用 chatgpt 學習使用 pinescript 撰寫交易策略 - Day 24
系列文
用GPT 撰寫選股策略30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
Calvin
iT邦新手 3 級 ‧ 2023-09-24 00:05:33

河河河河河河

0
孤獨一隻雞
iT邦研究生 4 級 ‧ 2023-09-24 09:21:01

河河河河河河

我要留言

立即登入留言