この戦略は,異なる期間の3つの単純な移動平均値 (SMA) とカウフマン適応移動平均値を組み合わせて長期間のエントリー信号を生成する.短い期間のSMAがより長い期間のSMAを横切ったときに購入信号を生成する.また,戦略は主要なトレンドを決定するためにキャンドルスティック色も組み込み,偽のブレイクを避けるために上昇傾向中にのみ購入信号を生成する.
この戦略は,SMA 4,SMA 9,SMA 18を含む異なる期間の3つのSMAを使用する.これらの3つのSMAのクロスオーバー組み合わせは,トレンド方向を判断するための古典的な指標である.SMA 4がSMA 9を超越し,SMA 9がSMA 18を超越すると,長いエントリー信号を生成する.
偽ブレイクをフィルタリングするために,カフマンの適応移動平均値も導入されています. 閉じる価格が適応移動平均値より高くなる時,すなわち上昇傾向の場合のみ,SMAのゴールデンクロス信号が有効になり,ロングポジションを誘発します.
さらに,100期SMAはメイントレンドを決定するために使用されます.価格が100期SMAを超えると,上昇傾向が始まっていることを確認します.この戦略は主要な上昇傾向中にのみ購入信号を生成します.
概要すると,この戦略の長引入信号は,次の組み合わせから来ます.
SMA4は SMA9を横断し,SMA9は SMA18を横断し,短期的な SMAの黄金十字を形成する.
閉じる価格は上昇傾向で,カウフマンの適応移動平均値よりも高い
価格が100期SMAを上回り,主要上昇傾向を確認
3つの条件が同時に満たされると,長いエントリー信号が生成されます.
この戦略の主な利点は以下の通りである.
トリプル SMA クロス を 用い て 傾向 を 特定 する こと が 効果 的 に 騒音 を フィルタリング し,信号 の 信頼性 を 向上 させる
アダプティブ・ムービング・メアダを導入することで,明確なトレンドがない場合の誤ったブレイクが回避される.
主なトレンド判断を組み込むことは,レンジ・バインド・ムーブメント中に繰り返しポジションを開くのを避けることで,利益の確率を高める.
長期および短期SMAの交差は,大きなトレンドシグナルを形成し,大きなトレンドシグナルを捉える.
4時間または日用レベルなどの高周期性タイミングに適しており,より信頼性の高い信号
この戦略にはいくつかのリスクもあります:
長期的戦略として,利益を間に合うように実現できず,一定の引き上げリスクがある
入力信号は比較的少なからず 走路を欠くこともあります
短期,中期,長期間のトレンドが対立する場合,誤った信号が生じる可能性があります.
次の最適化方法は採用できる.
中長期および長期間のSMA期間を適度に短縮して,入国機会を増やす
トレンドの信頼性を確認するためのボリュームなどの他の補助指標を追加します.
合理的に引き上げを制御するために慎重に停止する
この戦略をさらに最適化できる余地があります.
最適なパラメータを見つけるためにより多くのSMA組み合わせ期間をテストする
誤ったブレイクを避けるためにボリュームの確認を組み込む
波動性指標を暴力的な振動中にフィルターエントリに追加する
最適パラメータを適応的に識別するための機械学習アルゴリズムを導入する
市場パニックやユーファリアの時にポジションを取らないようにセンチメント指標を追加します.
この戦略は,複数のSMAクロスを通じて長線信号を形成し,適応性移動平均値と主要なトレンド決定と組み合わせます.安定した論理と強力な実践的な結果でトレンド動き中に重要な利益を得ることができます.しかし,さらなる最適化によって削減する必要があるリスクもあります.長期のポジション保有戦略として,耐心とリスク管理能力を持つ投資家に適しています.
/*backtest start: 2022-11-17 00:00:00 end: 2023-11-23 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/ // © Wielkieef //@version=5 strategy(title='twisted SMA strategy [4h] ', overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03) src = close Length1 = input.int(4, title=' 1-SMA Lenght', minval=1, group='SMA') Length2 = input.int(9, title=' 2-SMA Lenght', minval=1, group='SMA') Length3 = input.int(18, title=' 3-SMA Lenght', minval=1, group='SMA') SMA1 = ta.sma(close, Length1) SMA2 = ta.sma(close, Length2) SMA3 = ta.sma(close, Length3) Long_ma = SMA1 > SMA2 and SMA2 > SMA3 Short_ma = SMA1 < SMA2 and SMA2 < SMA3 LengthMainSMA = input.int(100, title=' SMA Lenght', minval=1) SMAas = ta.sma(src, LengthMainSMA) // Powered Kaufman Adaptive Moving Average by alexgrover (modificated by Wielkieef) lengthas = input.int(25, title=' Lenght') sp = input.bool(true, title=' Self Powered') er = math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas) pow = sp ? 1 / er : 2 per = math.pow(math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas), pow) a = 0. a := per * src + (1 - per) * nz(a[1], src) mad4h = 0. a_f = a / a[1] > .999 and a / a[1] < 1.001 ///. Bar_color = close > SMAas ? color.green : Long_ma ? color.blue : Short_ma ? color.maroon : color.gray barcolor(color=Bar_color) long_cond = Long_ma and SMAas < close and not a_f long_stop = Short_ma if long_cond strategy.entry('BUY', strategy.long) strategy.close_all(when=long_stop) //by wielkieef