
この戦略は,移動平均線,価格の形状,取引量の組み合わせを用いて市場の逆転点を識別する. 急速な移動平均線上での緩慢な移動平均線を横断し,多頭吞食形状,突破の抵抗点,取引量の拡大が起きたとき,戦略は多くを行う. 対照的に,迅速な移動平均線の下での緩慢な移動平均線を横断し,空頭吞食形状,支点の破破り,取引量の拡大が起きたとき,戦略は空っぽにする.
この戦略の核心思想は,均線システム,価格形状,および量力の3つの組み合わせを使用して,潜在的な逆転点を識別することである.具体的には,均線の黄金交差と死交差は,トレンドの転換を判断することができる.多頭吞食と空頭吞食という2つの価格形状は,通常,短期的な逆転を予兆する.大量取引量も,多くの場合,即興のトレンドの逆転を意味する.この3つの信号の組み合わせを使用すると,逆転のタイミングを比較的正確に把握することができる.
コード論理的に見ると,まず速動平均と遅動平均を計算する.そして,多頭吞食と空頭吞食の判断条件を設定する.また,サポートレジスタンスレベルと取引量拡大の条件を設定する.均線ゴールドクロス,多頭吞食形態,突破レジスタンスレベルと取引量拡大を満たすと,複数の信号を発信する.均線デッドクロス,空頭吞食形態,サポートレベルと取引量拡大を破ると,平仓信号を発信する.
この戦略の最大の利点は,複数のシグナルを組み合わせて反転を識別することで,偽のシグナルを効果的に減らすことです.具体的には,単一の平均線,価格形状,または量だけに頼り,誤った取引シグナルを引き起こすことは容易です.しかし,3つのシグナルが同時に現れれば,反転を予測する成功率は大きく向上します.
さらに,この戦略は,傾向と逆転の両方の要素を同時に利用する.逆転信号が現れる前に,傾向が存在しなければならない.つまり,この戦略は,傾向の背景で逆転の機会を探すことのみである.これは,ランダム性を減らし,利益の確率を高めます.
この戦略の最大のリスクは,反転が失敗すること,すなわち,複数の信号を発信した後,価格は下方へ続行すること;または,空き信号を発信した後,価格は上昇し続けることである.これは通常,判断の誤りによるもので,反転信号は偽物である,または,短期間間の調整のみであり,その後元の傾向が続行する.
解決策は,平均線パラメータを調整して,より長い周期のトレンドを識別することであり,同時に,逆転が失敗した後に,適切な止損幅を拡大して,間に合うように止めておくことです.さらに,逆転を確認するために,例えば,大きな周期の価格形態などのより多くの要因を組み合わせることもできます.
この戦略は,以下の方法で最適化できます.
平均線パラメータを調整し,より適切な長短周期を識別する.
パレトのサポートレジスタンスビットなどの異なるサポートレジスタンスビットアルゴリズムをテストする.
エネルギー・潮の指標,取引量の変動の指標など,様々な取引量指標を試す.
長期の価格動向や取引量の急増などの反転の兆候をさらに確認する.
株式指数期貨と結合してクロスマーケット確認を行う.株式指数期貨を使用して個々の株の逆転を確認する.
異なるパラメータの組み合わせをテストすることで,この戦略をさらに最適化することができ,その結果,利率と勝利率を向上させることができる.
この戦略は,均線システム,価格形状,取引量の3つの要因を統合して反転を識別し,複数のシグナルの有効な組み合わせを実現する.それは,トレンドの背景でのみ反転の機会を探し,ランダムな取引を避ける.パラメータをさらに最適化し,確認要素を追加することによって,この戦略は,非常に実用的なショートライン反転戦略になることができます.
/*backtest
start: 2023-01-10 00:00:00
end: 2024-01-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Profit Table Strategy", overlay=true)
// Input parameters
fastLength = input(10, title="Fast MA Length")
slowLength = input(20, title="Slow MA Length")
takeProfitPercent = input(1, title="Take Profit (%)") / 100
stopLossPercent = input(1, title="Stop Loss (%)") / 100
trailingStopPercent = input(1, title="Trailing Stop (%)") / 100
// Price action conditions
bullishEngulfing = close > open and close > open[1] and open < close[1] and open[1] > close[1]
bearishEngulfing = close < open and close < open[1] and open > close[1] and open[1] < close[1]
// Support and resistance levels
supportLevel = input(100, title="Support Level")
resistanceLevel = input(200, title="Resistance Level")
// Volume conditions
volumeCondition = volume > ta.sma(volume, 20)
// Calculate moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)
// Buy condition
buyCondition = (fastMA > slowMA) and (close > resistanceLevel) and bullishEngulfing and volumeCondition
// Sell condition
sellCondition = (fastMA < slowMA) and (close < supportLevel) and bearishEngulfing and volumeCondition
// Strategy logic
strategy.entry("Buy", strategy.long, when=buyCondition)
strategy.close("Buy", when=sellCondition)
// Calculate take profit, stop loss, and trailing stop levels
takeProfitLevel = strategy.position_avg_price * (1 + takeProfitPercent)
stopLossLevel = strategy.position_avg_price * (1 - stopLossPercent)
trailingStopLevel = strategy.position_avg_price * (1 - trailingStopPercent)
// Plotting levels on the chart
plot(supportLevel, color=color.blue, style=plot.style_line, linewidth=2, title="Support Level")
plot(resistanceLevel, color=color.purple, style=plot.style_line, linewidth=2, title="Resistance Level")
plot(takeProfitLevel, color=color.green, style=plot.style_line, linewidth=2, title="Take Profit Level")
plot(stopLossLevel, color=color.red, style=plot.style_line, linewidth=2, title="Stop Loss Level")
plot(trailingStopLevel, color=color.orange, style=plot.style_line, linewidth=2, title="Trailing Stop Level")
// Plotting buy and sell signals on the chart
plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar)
plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)