サイクルのポジショントレンドフォロー戦略は,200日間のシンプル・ムービング・平均値 (SMA) をベースにトレンド方向を決定する定量的な取引戦略である.トレーダーが自分の好みに応じて選択できる2つのモード -
この戦略の主な指標は200日SMAです.この戦略には2つのモードがあります.
アップトレンドモードをフォローする: 閉じるが200日SMAを超えるとロング; ストップ・ロストまたは/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/
ダウントレンドモードをフォローする: 閉じるが200日SMAを下回るときにロング; ストップ・ロストまたは利益を取るときに閉じるポジションが起動する.
長い条件はlongCondition
200 日間 SMA と 閉じる 価格 closeCondition
ストップ・ロスト,テイク・プロフィート,SMAをベースにした変数です
具体的にはstrategy.entry
long 条件を満たしたときにロングポジションを開くために使用されます.strategy.exit
閉じる条件が起動すると,ポジションを閉じるのに使用されます.
この戦略の利点は以下の通りです.
シンプルでわかりやすい論理です
異なる市場環境に合わせて 2つのオプションモードを提供します.
ストップ・ロストとテイク・プロフィートの調整が可能です
200日間のSMA指標を使って 傾向の方向を決定します
手動の介入なしで自動取引シグナルを生成します
この戦略のリスクは以下のとおりです.
MACDやKDJなどの指標を追加すれば 確認に役立つかもしれません
Stop loss と take profit のレベルが狭すぎたり,幅が広すぎたりすると,早期にストップアウトしたり,理想的な出口ポイントを逃したりすることがあります.パラメータは適切なテストと最適化が必要です.
信号の閉じる価格を使用すると閉じる価格バイアスがみられます.キャンドルボディを使用するか,信号確認を追加することを検討してください.
取引コストは考慮されません. 稼働時にコストを予約する必要があります.
戦略を改善する方法:
他の指標を追加して信号を確認し,誤った信号を避ける.例えばMACD.
ストップ・ロスのパラメータを最適化し,バックテストを通じて最適な組み合わせを見つけます
傾向フィルターを追加して, ADX のように,明確に定義された傾向のみで取引する.
キャンドルボディを考慮したり 確認を加えたりすることで 入力方法を改善します
信号の信頼性を検証するために取引量を考慮してください.
最適パラメータを見つけるために異なる SMA 期間をテストする.
結論として,この戦略は,実用的な価値を持つ明確で理解可能な論理を持っています. しかし,単一の指標に依存することは制限があります. 確認のためにより多くの条件を追加する必要があります. パラメータはまた,より良いライブパフォーマンスのためにテストと最適化が必要です. さらに,スリップや佣金などの取引コストは,ライブ取引で考慮する必要があります.
/*backtest start: 2022-11-10 00:00:00 end: 2023-11-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © I11L //@version=5 strategy("Cycle Position Trading", overlay=true, pyramiding=1, default_qty_value=100000, initial_capital=100000, default_qty_type=strategy.cash, process_orders_on_close=false, calc_on_every_tick=false) // Input for selecting the mode mode = input.string("Buy Uptrend", options = ["Buy Uptrend", "Buy Downtrend"]) // Input for customizing stop loss and take profit levels stopLoss = input.float(0.9, title="Stop Loss (SL) level", step=0.01) takeProfit = input.float(1.1, title="Take Profit (TP) level", step=0.01) // Calculate the 200-day Simple Moving Average (SMA) sma = ta.sma(close, 200) // Plot the SMA on the chart plot(sma) // Define the conditions for entering a long position based on the selected mode longCondition = mode == "Buy Uptrend" ? close > sma and close[5] > sma : close < sma // Define the conditions for closing a position based on the selected mode closeCondition = mode == "Buy Uptrend" ? (strategy.position_avg_price * stopLoss > close or strategy.position_avg_price * takeProfit < close or close < sma * 0.95) : (strategy.position_avg_price * stopLoss > close or strategy.position_avg_price * takeProfit < close or close > sma * 1.05) // Execute a long position if the longCondition is met if (longCondition) strategy.entry("My Long Entry Id", strategy.long) // Close the position if the closeCondition is met if (closeCondition) strategy.exit("Exit", limit = close)