内部のバーの脱出戦略

作者: リン・ハーンチャオチャン, 日付: 2024-02-26 12:16:52
タグ:

img

概要

インサイドバーブレイクストラテジーは,キャンドルスタイルのパターンをベースにしたトレンドフォロー戦略である.トレンド方向を決定するためにインサイドバーとアウトサイドバーキャンドルスタイルのパターンを用いて,ブレイクストでポジションを入力する.

戦略の論理

この戦略の背後にある主な論理は 2種類のキャンドルスタイクパターンを特定することです

  1. 内部バー:現在のバーの高値が前回の高値よりも低く,低値が前回の低値よりも高くなった場合,価格は収縮していることを示します.

  2. 外部バー:現在のバーの高値が前回の高値より高く,低値が前回の低値より低くなった場合,価格拡大を示します.

パターンのいずれかが特定されると,潜在的なエントリーをシグナルします. シグナルバーの次のバーで,オープン価格が前回の高値を超えると,ロングに行く. オープン価格が前回の低値を下回ると,ショートに行く.

入力後,利益とストップ損失の注文が配置されます. 特定のアルゴリズムは:

利益を取ること = (現在の閉じる価格 × 目標利益パーセント) / 最低価格の記号 ストップ損失 = (現在のストップ損失価格 × ストップ損失パーセント) / 最低価格マーク

ストップ・ロスを打つ際の最大許容される金額以下の損失を制限できます.

利点分析

この戦略の利点は次のとおりです.

  1. 中と外のバーパターンは 傾向の方向性を決定するのにかなり信頼できます

  2. 突破入口は確実性を高め 偽の突破を回避します

  3. 手動なしで完全に自動化され 運用リスクを軽減します

リスク分析

この戦略にはいくつかのリスクもあります:

  1. ろうそくのパターンの識別は 常に正確ではない 間違った信号の可能性がある

  2. 突破入口は 閉じ込められる ストップ・ロスは調整が必要かもしれない

  3. パラメータの設定が不適切なら 損失が増える

改善 の 分野

戦略を改善するいくつかの方法は以下の通りです.

  1. 偽信号を減らすためにフィルターを追加する,例えば音量フィルター.

  2. ダイナミックな 利益とストップ損失のアルゴリズムを最適化

  3. 逆転防止ストップ損失を組み込む

  4. マシン学習を使って パラメータを自動最適化します

結論

インサイドバーブレイアウト戦略は,全体的に信頼性と実装が容易なトレンドフォロー方法である.インサイドバーとアウトサイドパターンの予測力を活用し,ブレイアウトエントリのより高い確実性を兼ね備えています.シンプルな直線な論理により,アルゴリズム取引では初心者向けです.最適化と自動化のさらなる改善により,より安定した知的な取引結果が得られます.


/*backtest
start: 2023-02-19 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("inside bar strategy  Wıth SL-TP ", overlay=true )



insides = high < high[1] and low > low[1]
outsides = high > high[1] and low < low[1]

candle_control=insides or outsides


target_profit_percent=input(3,"target profit%",step=0.1)
stop_loss_percent=input(1,"stop loss %",step=0.1)



yearfrom = input(2021)
yearuntil =input(2022)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)


long_cond=candle_control[1] and close>open and high>high[1]
short_cond=candle_control[1] and close<open and low<low[1]



if ( long_cond ) 
    strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND",  comment="LONG")
    
else
    strategy.cancel(id="LONG")


if (  short_cond ) 

    strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND", comment="SHORT")
else
    strategy.cancel(id="SHORT")
    
    
    
    
profit_target=(close*(target_profit_percent/100))/syminfo.mintick
stop_target=(close*(stop_loss_percent/100))/syminfo.mintick


strategy.exit("LONG EXIT","LONG",profit=profit_target, loss=stop_target ) 
    
strategy.exit("LONG EXIT","SHORT",profit=profit_target, loss=stop_target ) 


もっと