
この戦略は,価格の最低値を追跡し,価格の低吸水後にすぐに多めにすることで,ダイナミックにストップとストップ・ロスのポイントを追跡し,利益をロックし,リスクを制御する.
この戦略の核心的な論理は,ATR指標を使用して動的ストップとストップの位置を計算することです.具体的には,閉盘価格が過去n日間の最低価格より低いとき (コードで7日と設定) に多信号をトリガーします.多頭ポジションを保有する期間,ATR指標をベースとして動的ストップとストップの価格を計算します (ATR倍数パラメータを設定して),そして,グラフでリアルタイムで表示します.価格がストップまたはストップポイントに触れたとき,利益のロックまたはリスク管理を実現します.
この戦略は,最も単純な低吸入と多策の組み合わせで動的ストップダストストップのアイデアを活用し,機会を把握し,リスクを制御します.
この戦略の主な利点は
ダイナミックなATR指標を使用して,ストップ・ロスを設定し,市場の波動幅に応じて損益ポジションを調整し,ストップ・ロスが固定されすぎることが不要な損失を招くか,より大きな利益を得る機会を失うのを防ぐことができます. これは,この戦略の最大の亮点でもあります.
低吸多策は,市場状況の揺れ調整時に勝利率が高く,基本面が良い株は,短期的に異常なサポートレベルを下回ると,反発し,修復する可能性が高い.
ATRの値から適切なストップ・ストラスト比率を推定し,市場環境と個人のリスク承受能力に応じて柔軟に設定できます.
コードロジックはシンプルでわかりやすく,理解しやすい,パラメータ設定も比較的直感的で,戦略学習の例として適しています.
この戦略の主なリスクは
低吸引反発の幅と強さを判断できないため,一定利潤のギャップのリスクがある.ATR指標パラメータを調整することで異なる止まり幅を設定することができる.
隠蔽されるリスクがある.価格がサポートレベルを下回った後に下落し続けた場合,大きな損失のリスクに直面する.単一の損失を減らすために,ポジションのサイズを適切に縮小し,ATRの止損倍数を減らすことができます.
止損点に近すぎると,外出に震えることもあります. 無駄な止損を防ぐためにATR倍数を適切に放寬する必要があります.
データ適合のリスクを測る.異なる市場環境でデータをテストし,衝撃コストの設定を整える.
この戦略は以下の点で最適化できます.
支持位と反転信号判断を最適化する.反転信号を判断するために,KDJ指数やブリン帯通路などのより精細で信頼できる指数を使うことができる.
ポジション管理戦略の最適化. ポジション管理モジュールにより,市場の変動率などの状況に応じてポジションを動的に調整できます.
ストップロスを追跡するモジュールが設定できます. 価格が一定幅で走った後,ストップロスの距離を緊縮し始め,利益の一部をロックします.
同期検証モジュールを追加. 購入する株の板塊または大市場が同期でサポート位置に下落したとき,購入信号の信頼性をさらに検証する.
この戦略は,低吸入で多思路をとり,ATRの動的追跡と組み合わせたストップ・ストップ・メカニズムにより,市場逆転の修復の機会を効果的に把握でき,同時にストップ・ストップを活用して取引リスクを管理することもできます.最適化スペースは大きいが,戦略の学習入門スタイルとして簡単で分かりやすいです.この基礎でさらに改善でき,戦略をより一般的で信頼性のあるものにすることができます.
/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 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/
// © racer8
//@version=4
strategy("Buy-The-Dip", overlay=true)
atn = input(15, "ATR Period")
atr = sma(tr,atn)[1]
bought = strategy.position_size[0] > strategy.position_size[1]
slm = input(2.0,"ATR SL Multiple",minval=0)
StopPrice = strategy.position_avg_price - slm*atr // determines stop loss's price
FixedStopPrice = valuewhen(bought,StopPrice,0) // stores original StopPrice
plot(FixedStopPrice,"Stop Loss",color=color.red,linewidth=2,style=plot.style_cross)
tpm = input(1.0,"ATR TP Multiple",minval=0)
TakePrice = strategy.position_avg_price + tpm*atr // determines Take Profit's price
FixedTakePrice = valuewhen(bought,TakePrice,0) // stores original TakePrice
plot(FixedTakePrice,"Take Profit",color=color.green,linewidth=2,style=plot.style_cross)
nn = input(7,"Channel Length")
ll = lowest(low,nn)
if close<ll[1]
strategy.entry("Buy",strategy.long)
if strategy.position_size > 0
strategy.exit(id="XL SL", stop=FixedStopPrice, limit=FixedTakePrice) // commands stop loss order to exit!
plot(ll,color=color.orange)