
極限逆転追跡策は,価格変動区間の極限点を追跡し,極限点の逆転で多空をすることで,トレンド追跡を実現する.
この戦略は主に以下の原則に基づいて機能します.
security関数を使用して,異なる周期のK線の最高値highと最低値lowを取得し,前のK線の最高値最低値に等しいかどうかを検出して,新しい極限値に達したかどうかを判断する.
新しい極限点が検出されたとき,現在の多頭行情であれば,その極限点で空調を反転させる.現在の空頭行情であれば,その極限点で空調を反転させる.
ストップポイントは,トレンド追跡ストップを実現するために,多額の空白後に形成される新しい極限点として設定されます.
策略の有効期間を年月日から設定することで,異なる時間帯の策略調整を実現します.
この戦略の利点は以下の通りです.
価格の変化の極限点を効果的に捉え,反転操作を行い,トレンドを追跡する.
時間の管理と資金管理を設定することで,戦略の時間と資金の管理を可能にし,リスクを軽減します.
新しい極限値をストップポイントとして採用し,新しい価格変動範囲に応じてストップポジションを調整し,ダイナミックストップを実現する.
戦略の論理はシンプルでわかりやすく,理解しやすく,デビューや最適化に便利です.
この戦略にはいくつかのリスクがあります.
極限点判断は,誤判が起こりうる状況で,空白の誤りを多めに行う.極限点判断の論理を調整することで最適化することができる.
入場点に近い位置でストープが起動される可能性が高くなります.オフフィールドのregexesが浮動ストープを設定して解決できます.
トレンドに沿った加仓と逆開口の論理を考慮していないと,トレンドの状況で利益を得ることは困難である.加仓と逆開口のルールを追加して最適化することができる.
通貨と時間帯の設定は,動的に調整できないので,固定です.パラメータ最適化システムを構築して解決できます.
この戦略は以下の方向から最適化できます.
極限点判定の論理を最適化し,多くのフィルタリング条件を追加し,誤判を避ける.
浮動性ストップメカニズムを追加し,価格と波動幅の変化に応じてストップ距離を調整する.
トレンドと波動に基づく加仓と逆開口モジュールが追加され,収益性を向上させる.
パラメータの最適化メカニズムを確立し,パラメータの自動化テストと最適化を実現する.
マシン・ラーニング・モデルに組み込まれ, 戦略的決定を補助する.
この極限逆転トラッキング戦略は,価格変化の極限点を捕捉し,トレンド走行を追跡することにより,強い適応性と収益性を有する.極限点判断,ストップ・ロズ・メカニズム,ポジション開設規則などの面での最適化が継続された後に,この戦略は,安定した信頼性の高い量化取引戦略になる見込みである.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Extremum Strategy v1.0", shorttitle = "Extremum str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
tf = input('W', title = 'Timeframe for extremums')
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//Levels
highm = request.security(syminfo.tickerid, tf, high[1])
lowm = request.security(syminfo.tickerid, tf, low[1])
upcolorm = highm == highm[1] ? lime : na
dncolorm = lowm == lowm[1] ? red : na
plot(highm, color = upcolorm, linewidth = 3)
plot(lowm, color = dncolorm, linewidth = 3)
//Signals
size = strategy.position_size
up = size > 0 ? highm * 1000000 : highm != highm[1] ? highm : up[1]
dn = size < 0 ? 0 : lowm != lowm[1] ? lowm : dn[1]
exit = true
//Trading
lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if highm > 0 and high[1] < highm and highm == highm[1]
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = up)
if lowm > 0 and low[1] > lowm and lowm == lowm[1]
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dn)
if exit
strategy.close_all()