
多時間枠の買い値下落戦略は,比較的単純な自動取引戦略で,トレンドの上昇期に相当な利益を得ることができます.しかし,すべての価格下落が買い物に適しているわけではありません.異なる時間枠に応じて,各取引を最適化する必要があります.
この戦略は,1時間の時間枠を利用して突然の価格下落を捉え,過去12時間の間に価格が顕著に上昇している.の上昇傾向の中で,利益がもたらされた瞬間的な崩壊は,市場への入場に非常に良いタイミングを提供している.
このスクリプトの設定は30分間の時間枠に最適化されています. 異なる時間枠に合わせてパラメータを調整できます.
システムでは,以下の条件が満たされた場合,購入シグナルを発信します.
価格が過去2つのK線より1%下がった ((1時間時間枠=2つの30分K線)
価格が過去12時間 (K線24本30分=既定時間枠) よりも3%上昇
この設定は,20以上の異なる暗号通貨の取引ペアで150回以上の反射テストが行われて,最適化されています.
この戦略は,各注文取引可能な資金の30%を想定している.戦略は,0.1%の取引手数料を考慮している.この手数料は,Binance (世界最大の仮想通貨取引所) の基礎手数料と一致している.
複数の時間枠で価格下落を買い取る戦略の核心構想は,長期と短期の両方の時間枠を組み合わせて市場に出るタイミングを判断することである.
まず,1時間の時間枠で価格が急落したかどうかを判断する.ここでは,現在のK線が前2つのK線に比べて1%以上の下落があったかどうかを判断することによって確認する.
次に,12時間の時間枠で,価格が長線で顕著に上昇しているかどうかを判断する.ここでは,過去12時間の価格上昇が3%に達したかどうかを計算することによって確認する.
短期的な時間枠が下落し,長期的な時間枠が上昇傾向にある場合にのみ,買入シグナルを発信する.
このような組み合わせは,長期の下落傾向で盲目買いを避ける一方で,短期的な調整によって提供される買い機会を捉えることができます.異なる時間枠の組み合わせにより,取引戦略はより安定し,信頼性が高くなります.
この戦略は技術的に 2つの異なるパラメータを呼び出すことでperc_change()この関数は,2つの時間枠の判断を実現する. 一つは過去12時間の上昇を判断し,もう一つは過去1時間の上昇を判断する. 両方が同時に条件を満たすとき,買取信号を発する.
多時間枠で価格下落を買い取る戦略の最大の利点は,トレンドを効果的に判断し,短期的な調整の買いタイミングを把握することにある.具体的には,主に以下の利点がある.
長期にわたる下落の際に買い物を避けるため,不必要な損失を減らすために,長い時間枠を組み合わせることができます.
短期的なタイムフレームは,購入価格が低い瞬間を提示する突然の調整を捉えることができます.
この反射は,暗号通貨の高波動性特性に適した策略を最適化するためにパラメータを最適化しました.
取引費用の影響も考慮し,シミュレーションを現実の取引環境に近いものにしました.
簡単な取引ロジックとパラメータ設定,理解し,調整しやすい.
異なる取引ペアに広く適用され,柔軟性が高い.
複数の時間枠で購入する価格下落戦略には,いくつかのリスクがあり,主に以下のポイントに焦点を当てています.
短期的な調整は長期のトレンドの逆転になるかもしれない.
固定パラメータ設定は,市場の変化に完全に適応できない可能性があり,調整が必要である.
Alwaysは模擬取引でうまく機能し,実際の取引では差異がある.
短期的な価格変動の最適購入ポイントを逃す可能性がある.
単一の取引戦略は,システム上のリスクの影響を容易に受けます.
高頻度取引は取引費用の負担を増加させる.
戦略的リスクに対応するために,以下の最適化策を考慮することができます.
長期・短期トレンドを判断する指標を追加し,判断の精度を高めます.
パラメータ設定を最適化して,市場の変化に動的に適応させる.
戦略を現実環境でテストし,反測と実盤の違いを測定する.
タイムフレームを適切に調整し,遅延を軽減する.
システム上のリスクを分散させるため,複数の非関連戦略を同時に使用する.
ストップ・ストップを合理的に設定し,単一取引のリスクをコントロールする.
複数の時間枠で価格を下げて購入する戦略には,多くの最適化余地があり,主に以下の側面から行うことができます.
戦略の安定性を高めるため,ブリン帯,RSIなどの指標を追加します.
機械学習モデルに組み込み,パラメータの動的最適化を実現し,市場の変化に適応する.
ストップ・ストップ・ストップ戦略を最適化し,単一取引のリスクを低減する.
より多くの取引ペアと時間周期で再テストを試み,最適なパラメータの組み合わせを見つけます.
取引量の変化などの指標を組み合わせて,値取引に誤り入らないようにする.
資産配置,ポジションコントロールなどのリスク管理モジュールを追加し,全体的なリスクを制御する.
トレンド追跡,ブレーキなど,アルゴリズム取引の他の戦略のタイプを試す.
より複雑な複数の時間枠の組み合わせを探し,最適なパラメータの組み合わせを探します.
ニュース取引の要素を組み込み,ニュースイベントを取引の原動力として活用する.
以上のような最適化手段によって,この戦略をより安定し,スマートで,包括的に,暗号市場の複雑さに適応させることができる.しかし,いかなる最適化も,過度に最適化の問題を避けるために慎重にテストする必要がある.
多時間枠の買い値下落戦略は,全体として非常に実用的な短線取引戦略である.それは,短期と長期の2つの時間次元を同時に重視し,比較的効率的でありながらも判断の正確性を高めます.合理的なパラメータ設定と最適化により,それはほとんどの取引市場に適応し,特にトレンド型製品の中で顕著に表れます.
しかし,どんな機械化戦略と同様に,それには一定の限界があり,トレーダーは理性を保ち,市場の変化に対応するために常に最適化と調整を行う必要があります. 成功した戦略は常に進化し続けています.
総じて,マルチタイムフレームの買い値下落戦略は,アルゴリズム取引の非常に良いモデルを提供します. それは,異なるタイムフレームを選択し,パラメータを設定し,最適化,リスク管理などのアルゴリズム取引の基本要点を概括しています. この戦略を適切に適用し,実践で継続的に改善することで,交易者が大量の情報の中で重要な手がかりを把握し,市場で継続的なアルファを得ることができます.
/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
period: 4h
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=1
strategy(shorttitle='Multi Time Frame Buy the Dips',title='Multi Time Frame 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() => true // create function "within window of time"
inp_lkb = input(24, title='Lookback Long Period')
inp_lkb_2 = input(2, title='Lookback Short Period')
perc_change(lkb) =>
overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100
// Call the function
overall = perc_change(inp_lkb)
overall_2 = perc_change(inp_lkb_2)
//Entry
dip= -(input(1))
increase= (input(3))
strategy.entry(id="long", long = true, when = overall > increase and overall_2 < dip and window())
//Exit
Stop_loss= ((input (3))/100)
Take_profit= ((input (4))/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())