この戦略は,主にKラインの価格スイング範囲とトレンド判断を使用して取引機会を見つけます.価格が前のKラインの高点または低点を突破したとき,取引信号を送信します.トレンドが上昇すると,価格が高点を突破するとロング;トレンドがダウンすると,価格が低点を突破するとショートします.
この戦略は主に2つのポイントに基づいています
クリンガー振動器は,トレンド方向を判断します.指標が0を超えると,上昇傾向を示し,0未満になると,下落傾向を示します.
価格が前回のKラインの最高価格または最低価格を突破します.最高価格を突破すると上昇傾向でロング,最低価格を突破するとダウントレンドでショートします.
具体的には,戦略の導入論理は以下のとおりです.
長いエントリー:
短いエントリー:
市場に参入した後,ストップ・ロスの価格や利益の引き上げ価格が 入場価格の一定の割合で設定されます.
この戦略の主な利点は以下の通りです.
トレンドが変わるときに 機会を把握し 利益の確率を高めます
振動する市場で方向性のない取引を避ける.
移動平均を組み合わせて 誤ったブレイクをフィルターします
制御可能なリスク 合理的なストップ・ロストと 利益
この戦略の主なリスクは,
振動する市場ではストップロスは増えるかもしれません
移動平均のパラメータの設定が正しくない場合,判断が間違える可能性があります.
脱出が失敗すれば 引き戻し損失になる
傾向が逆転すると損失は拡大する可能性があります
頻繁に取引して 高額な手数料です
リスクは,誤った判断を減らすためにより適切な移動平均期間の発見のためにパラメータを最適化することで制御することができます. 単一の損失を制御するために合理的なストップ損失距離を設定します. 明らかなトレンドを持つ品種を取引します. 適切な取引頻度を減らす.
この戦略は,次の側面で最適化できます.
移動平均のパラメータを最適化して,ノイズを減らすためによりスムーズなパラメータを見つけます.
傾向を特定するために異なる指標をテストし,より信頼できる決定指標を見つけます.
ストップ・ロスの最適化と利益戦略の採用を図り,市場統計の特徴により合致させる.
トレンドフィルタリングを増やして振動市場における偽のブレイクを避ける.
取引時間と品種を選択するために,取引時間と品種フィルタを追加します.
研究パラメータの設定は 異なる時間サイクルです
一般的には,これは比較的シンプルで実用的なブレイクアウト戦略である.その利点は制御可能なリスクであり,インジケーターを使用して方向性のない取引を避ける.しかし,振動する市場で偽のブレイクアウトを防止し,タイムリーストップロスを注意する必要がある.パラメータの最適化とインジケーターの信頼性を向上することによって戦略の成功率をさらに改善する.この戦略は明らかな傾向のある市場に適しています.より強い振動を持つ品種や時間サイクルで使用した場合,結果は損なわれる可能性があります.
/*backtest start: 2022-10-20 00:00:00 end: 2023-10-26 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/ // © exlux99 //@version=4 strategy("Advanced OutSide Forex strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, calc_on_every_tick = true, commission_type = strategy.commission.percent, commission_value = 0.0) sv = change(hlc3) >= 0 ? volume : -volume kvo = ema(sv, 34) - ema(sv, 55) sig = ema(kvo, 13) length = input(title="Length", type=input.integer, defval=27) src = input(close, title="Source") lsma = hma(src, length) if (high > high[1] and low < low[1]) if (close > open and kvo>0 and lsma<close) strategy.entry("long", strategy.long, comment="long") if (high < high[1] and low > low[1]) if (close < open and kvo<0 and lsma>close) strategy.entry("short", strategy.short, comment="short") tplong=input(0.006, step=0.001, title="Take profit % for long") sllong=input(0.012, step=0.001, title="Stop loss % for long") tpshort=input(0.0075, step=0.001, title="Take profit % for short") slshort=input(0.015, step=0.001, title="Stop loss % for short") strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT', alert_message = 'closeshort') strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT', alert_message = 'closeshort')