これは非常にシンプルな短期取引戦略で,主に指数先物日取引に適しています.指数が長期上向きのチャネルにあり,短期的な逆転信号がある場合にのみ長くなります.
この戦略は,主に移動平均値とRSI指標を使用して,トレンドと過買い/過売り条件を決定する.具体的な取引信号は:インデックス閉盤価格が長期200日間の移動平均値から反転し,長期トレンド判断としてその上にとどまる;閉盤価格が短期調整信号として10日間の移動平均値以下に突破する;RSI3が過売り信号として30未満である.上記の3つの条件が満たされた場合,短期逆転の確率は比較的大きいと考えられる.
ポジションを取った後,出口はストップ・ロスト,利益採取,短期トレンド判断に基づいて行われます. 閉じる価格が10日間のMAを超えると,短期調整が終了したと判断すると,積極的に利益を取ります. 閉じる価格が新しい低値に達した場合,損失で停止します. 閉じる価格が10%上昇すると利益を取ります.
この戦略には以下の利点があります.
この戦略にはいくつかのリスクもあります:
上記のリスクに対応して,サイクルパラメータの最適化,ストップ・ロスの比率の調整,他の指標判断の追加など,戦略の改善に用いることができる.
戦略は以下の側面で最適化できます.
概要すると,これは非常にシンプルで実用的な短期取引戦略です.リスクを制御しながら過剰なリターンを獲得するために,長期上向きと短期のプルバック逆転を組み合わせます.継続的な最適化とパラメータ調整により,より良い結果が得られます.
/*backtest start: 2023-01-11 00:00:00 end: 2024-01-17 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/ // © tsujimoto0403 //@version=5 strategy("simple pull back", overlay=true,default_qty_type=strategy.percent_of_equity, default_qty_value=100) //input value malongperiod=input.int(200,"長期移動平均BASE200/period of long term sma",group = "パラメータ") mashortperiod=input.int(10,"長期移動平均BASE10/period of short term sma",group = "パラメータ") stoprate=input.int(5,title = "損切の割合%/stoploss percentages",group = "パラメータ") profit=input.int(20,title = "利食いの割合%/take profit percentages",group = "パラメータ") startday=input(title="バックテストを始める日/start trade day", defval=timestamp("01 Jan 2000 13:30 +0000"), group="期間") endday=input(title="バックテスを終わる日/finish date day", defval=timestamp("1 Jan 2099 19:30 +0000"), group="期間") //polt indicators that we use malong=ta.sma(close,malongperiod) mashort=ta.sma(close,mashortperiod) plot(malong,color=color.aqua,linewidth = 2) plot(mashort,color=color.yellow,linewidth = 2) //date range datefilter = true //open conditions if close>malong and close<mashort and strategy.position_size == 0 and datefilter and ta.rsi(close,3)<30 strategy.entry(id="long", direction=strategy.long) //sell conditions strategy.exit(id="cut",from_entry="long",stop=(1-0.01*stoprate)*strategy.position_avg_price,limit=(1+0.01*profit)*strategy.position_avg_price) if close>mashort and close<low[1] and strategy.position_size>0 strategy.close(id ="long")