低値で購入して高値で売却する戦略は,非常にシンプルで効果的な長期的取引戦略である.この戦略は,大きな下落後に自動的に暗号通貨を購入し,上昇が設定された目標に達すると販売し,それによって主要な市場変動の間に利益を得ることができます.
この戦略の核心は,特定のバックピリオド期間中の暗号通貨価格の上昇と低下を計算することによって,市場が大きな下落を経験したかどうかを判断することです. 最近の期間中に暗号通貨価格が設定された
具体的には,この戦略は, trailing_change 関数を使用して,特定のバックバック期間にわたって暗号通貨価格の全体的な上昇と低下を計算します.最後の inp_lkb ろうそく内の暗号通貨価格の上昇と低下が設定パラメータディップのマイナス値よりも低いとき,それは購入条件を満たす主要な減少です.この時点で,バックテストの時間ウィンドウ内で,戦略の購入オーダーはトリガーされます.
購入後,この戦略はリアルタイムで価格変化を追跡し,2つの出口条件を設定します. (1) 価格が開示価格の (1 - ストップ損失パーセント) %以下に下がると,ストップ損失オーダーは起動します. (2) 価格が開示価格の (1 + 利益パーセント) %以上に上昇すると,利益を得るオーダーは起動します.
この低値で購入して高値で売却する戦略の最大の利点は,非常にシンプルで実行が簡単である.近期間の価格の上昇と下落にのみ依存し,複雑な技術指標を必要としないため,市場状況を判断するのに非常に適している.同時に,低値で購入し,高値で売却することは,特に非常に不安定な仮想通貨市場で,効果的な長期戦略でもあります.そのような逆の取引戦略は,かなりの長期的利益をもたらすことができます.
さらに,この戦略はストップ・ロストとテイク・プロフィート設定をサポートし,個々の取引の損失を効果的に制御し,一部の利益をロックすることができます.これはまた,市場がより大きな不利な変動を経験しても,損失は手頃な範囲内で制御できます.
この戦略の主なリスクは,市場の逆転のタイミングを決定することは不可能である.もし市場が反転せずに減少し続けるならば,オープンしたロングポジションはより大きな浮動損失を経験する可能性があります.したがって,ストップ・ロスのポイントを設定することが重要です.ストップ・ロスのポイントがあまりにも広く設定されている場合,単一の損失は壊滅的になります.
また注意すべきリスクは,激しい市場変動がある場合,価格が短時間でストップ・ロスを引き起こすか,利益を上げることができるということです.これは追加の取引コストにつながる可能性があります.特に市場が急激に変動する場合,価格が短時間で複数のストップ・ロスを引き起こすことや利益を引き出すことは珍しくありません.
上記のリスクに対処するために,市場変動におけるいくつかの誤った信号をフィルタリングするより安定かつ信頼性の高い購入信号を確保するために,より長い見直し期間を設定することができます. さらに,特定の取引冷却期間を導入することができます. ポジションを閉鎖した後の一定の期間で新しいポジションを開けないことも,価格変動によって引き起こされる過剰な高取引頻度の問題を効果的に軽減することができます.
この戦略は,主に以下の側面において,さらに最適化できる余地があります.
ストップ・ロストとテイク・プロフィートのパラメータを動的に調整する.ストップ・ロスト範囲とテイク・プロフィートの範囲は,市場の変動に基づいて動的に調整することができます.市場のパニック中により広いストップ・ロスト範囲を持ち,市場が上昇するときに適度に狭いテイク・プロフィートの範囲を持っています.
入場タイミングを決定するために複数の要因を組み合わせます.最近の上昇と低下に加えて,より信頼性の高い逆転信号を決定するために取引量の変化などの他の要因を導入することができます.
再入場メカニズムを追加します.ストップ損失または利益を取った後に,新しい逆転機会を買い戻すために特定の再入場戦略を設定できます.
この戦略は,非常に不安定な暗号通貨市場に適しています.市場逆転の機会を把握し,リスクを制御するためにストップ損失と利益を取ることを設定します.この戦略は非常にシンプルで,理解し,実行するのが簡単で,初心者向けに理想的です.さらなる最適化により,より安定した戦略パフォーマンスを得ることができます.要約すると,低価格で購入し,高価格で販売することは,推奨される長期的な取引戦略です.
/*backtest start: 2023-11-25 00:00:00 end: 2023-12-25 00:00:00 period: 1h basePeriod: 15m 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/ // © Coinrule //@version=3 strategy(shorttitle='Buy the Dips',title='Buy the Dips (by Coinrule)', overlay=true, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates fromMonth = input(defval = 1, title = "From Month") fromDay = input(defval = 10, title = "From Day") fromYear = input(defval = 2020, title = "From Year") thruMonth = input(defval = 1, title = "Thru Month") thruDay = input(defval = 1, title = "Thru Day") thruYear = input(defval = 2112, title = "Thru Year") showDate = input(defval = true, title = "Show Date Range") start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" inp_lkb = input(1, title='Lookback Period') perc_change(lkb) => overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100 // Call the function overall = perc_change(inp_lkb) //Entry dip= -(input(2)) strategy.entry(id="long", long = true, when = overall< dip and window()) //Exit Stop_loss= ((input (2))/100) Take_profit= ((input (2))/100) longStopPrice = strategy.position_avg_price * (1 - Stop_loss) longTakeProfit = strategy.position_avg_price * (1 + Take_profit) strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())