この戦略は,スムーズな移動平均線と平均真の範囲を使用して2つのストップ損失価格レベルを計算する.価格はストップ損失レベルを突破してトレンドのストップ損失追跡を達成するときにリバースポジションを開く.この戦略は非常に不安定な仮想通貨取引に適しており,利益を効果的にロックし損失を回避することができます.
この戦略は,ATR計算を通じて合理的なストップロスの範囲を決定し,その後,RMA方法を用いて,小さな価格変動によってストップを誘発しないようにストップロスの線を滑らかにします.トレンド逆転が発生すると,ストップロスの線を逆方向に突破して信号を迅速に識別し,ポジションを確立できます.
ストップロスの範囲は,ATR期間を適切に短縮したり,ATR倍数値を減らすこと,または不必要なポジション開設を減らすために追加のフィルターを追加することで縮小することができます. 劇的な市場変化に対応するために実際のレバレッジとポジションサイズを制御することに注意してください.
他のオシレーター指標でトレンド方向を判断することで,統合中に非効率的な開拓を回避することができる.ストップ・ロストラインを突破した後も価格が一定の範囲で継続できるようにするためにエントリー論理を最適化する.より多くの利益をロックするために移動した利益採取ラインを追加する.マシンの学習を使用して,より良いストップ・ロスト機能を訓練する.
この戦略は,リスクを効果的に制御するために,流暢な移動平均ストップ損失線で非常に不安定な仮想通貨市場を動的に追跡する.戦略パラメータは比較的安定しており,自動取引に適している.パフォーマンスを向上させるためにより多くの指標とアルゴリズムを組み合わせることで,複数の次元で最適化することができます.
/*backtest start: 2023-12-31 00:00:00 end: 2024-01-30 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // // 作品: [LunaOwl] 超級趨勢2 // //////////////////////////////// // ~~!!*(๑╹◡╹๑) ** // // 製作: @LunaOwl 彭彭 // // 第1版: 2019年05月29日 // // 第2版: 2019年06月12日 // // 微調: 2019年10月26日 // // 第3版: 2020年02月12日 // //////////////////////////////// // // //超級趨勢的缺點: //--1.止損距離可能相當大, 請自己調整週期 //--2.市場沒有存在明顯趨勢的時候表現不佳 // //超級趨勢的優點: //--1.具有可以參考的移動止損線, 適合新手 //--2.市場存在明顯趨勢的時候表現會很不錯 // //使用須知: //--1.每筆交易都需要下移動止損單, 絕對要下 //--2.中途被針掃出場時不要急著再進去 //--3.當錯失機會不要追高追低, 等待下次機會 //--4.實質槓桿比率不要太高, 不要輕忽市場變化 //--5.訂單進出場都建議分成五份、十份區間掛單 //--6.不要妄圖賺到市場上的每一分錢 // //稍做更新: //--1.平均真實區間利用了遞迴均線減少雜訊 //--2.針對高波動率的小幣市場,中期順勢策略應該以減少雜訊為重點 //--3.研究國外交易策略後,它們常用平滑因子過濾隨機走勢 //--4.績效上和其它平均法比較並沒有突出,但優點是參數變動穩定性 //--5.我選擇四小時線回測小幣市場,並且選擇經歷過牛熊市的以太坊 //==設定研究==// //study(title = "[LunaOwl] 超級趨勢2", shorttitle = "[LunaOwl] 超級趨勢2", overlay = true) //==設定策略==// strategy( title = "[LunaOwl] 超級趨勢2", shorttitle = "[LunaOwl] 超級趨勢2", format = format.inherit, overlay = true, calc_on_order_fills = true, calc_on_every_tick = false, pyramiding = 0, currency = currency.USD, initial_capital = 10000, slippage = 10, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, commission_value = 0.1 ) //==設定參數==// src = input(close, "數據來源") length = input( title = "ATR 周期", type = input.integer, minval = 1, maxval = 4, defval = 1 ) //可以設定的精度為小數點後三位 mult = input( title = "ATR 乘數", type = input.float, minval = 1.000, maxval = 9.000, defval = 2.618, step = 0.001 ) atr = mult * atr(length) atr_rma = rma(atr, 14) //平均真實區間添加遞回均線 //==算法邏輯==// LongStop = hl2 - atr_rma LongStopPrev = nz(LongStop[1], LongStop) LongStop := close[1] > LongStopPrev ? max(LongStop, LongStopPrev) : LongStop ShortStop = hl2 + atr_rma ShortStopPrev = nz(ShortStop[1], ShortStop) ShortStop := close[1] < ShortStopPrev ? min(ShortStop, ShortStopPrev) : ShortStop dir = 1 dir := nz(dir[1], dir) dir := dir == -1 and close > ShortStopPrev ? 1 : dir == 1 and close < LongStopPrev ? -1 : dir LongStop_data = dir == 1 ? LongStop : na ShortStop_data = dir == 1 ? na : ShortStop LongMark = dir == 1 and dir[1] == -1 ? LongStop : na ShortMark = dir == -1 and dir[1] == 1 ? ShortStop : na LongColor = #0D47A1 //普魯士藍 ShortColor = #B71C1C //酒紅色 //==設置止損線==// plot(LongStop_data, title = "移動止損線", style = plot.style_linebr, color = LongColor, linewidth = 1 ) plot(ShortStop_data, title = "移動止損線", style = plot.style_linebr, color = ShortColor, linewidth = 1 ) //==設定K線顏色==// barcolor(dir == 1 ? LongColor : ShortColor, title = "K線顏色") //==設定快訊通知==// alertcondition(LongMark, title = "多頭標記", message = "多頭標記: 行情可能出現潛在變化,請注意個人的對沖或空頭部位,留意風險。") alertcondition(ShortMark, title = "空頭標記", message = "空頭標記: 行情可能出現潛在變化,請注意個人的現貨或多單持倉狀況,留意風險。") // - 設定日期範圍 - // test_Year = input(2017, title = "設定範圍:年", minval = 1, maxval = 2140) test_Month = input( 11, title = "_____月", minval = 1, maxval = 12) test_Day = input( 01, title = "_____日", minval = 1, maxval = 31) test_Period = timestamp( test_Year, test_Month, test_Day, 0, 0) // - 買賣條件 - // Long = src > LongStop_data strategy.entry("多頭進場", strategy.long, when = Long) strategy.close("多頭出場", when = Long) Short = src < ShortStop_data strategy.entry("空頭進場", strategy.short, when = Short) strategy.close("空頭回補", when = Short)