ブレイクアウトプルバックオープニング戦略


作成日: 2024-02-22 15:41:53 最終変更日: 2024-02-22 15:41:53
コピー: 0 クリック数: 599
1
フォロー
1617
フォロワー

ブレイクアウトプルバックオープニング戦略

概要

この戦略の主な考えは,特定のK線形が現れた後に多額のポジションを打つこと,すなわち,下空を跳ね上がる陰線が現れた場合と,次のK線低点回調の場合には,次のK線開盤時に多額の入場を行うことである.

戦略原則

この戦略の判断の具体的な条件は,前K線は前2K線に比べて最低点より低く,最高点より高く,下空跳びが発生していること,そして現在のK線の最低点も前K線の最低点より低く,またはそれと同等であること,再調整が発生していることである.この2つの条件を同時に満たすとき,次のK線の開盤時に多入場を行う.

プラスした後に,ストップロスを逆調低点,すなわち前K線の最低価格として設定し,ストップを開設価格の2%以上として設定する. 価格がストップまたはストップロスの価格に触れた後に平仓する.

優位分析

この戦略の最大の優位性は,短期的に非常に起こりうる反発の機会を捉えることにある.下空を飛ぶK線が現れて後退が起こる時,これは空頭力のこのレベルで尽きる可能性があることを示す非常に強力な技術形態であり,反発が発生する可能性は高い.したがって,これは比較的短線操作に適した戦略である.

リスク分析

この戦略の主なリスクは,リターン終了後に価格が下がり続ける可能性である.我々はリターン低点の近くで多くを行うので,時 ਸਿਰ止損ができない場合は,大きな損失に直面する可能性があります.さらに,リターン幅が小さい場合,止損点が比較的近く設定されている場合は,套用される可能性があります.したがって,この戦略は,短線操作に適しています.

最適化の方向

他の指標と組み合わせて,入場タイミングを決定する方法を考えることができます.例えば,MACDが金叉の発生時に再入場するか,またはサポート位置にあるかどうかを典型価格で計算することができます.これは,いくつかの偽信号をフィルターして,戦略の安定性を向上させることができます.さらに,異なる品種,異なる時間周期でこの戦略のパフォーマンスを研究して,最適なパラメータの組み合わせを見つけることができます.また,機械学習などの方法によってパラメータを自動的に最適化することもできます.

要約する

この戦略は,全体的に言えば,典型的なショートライン突破リコール多策である。それは空飛ぶとリコールが発生するこの強い形状が提供する反発の機会を掴む。しかし,同時に,タイムリーに止まらないと大きな損失を引き起こすリスクにも直面する.したがって,頻繁に市場を監視するショートライン操作に適している。他の指標のフィルタリングと信号パラメータの最適化とさらに組み合わせることで,戦略の効果を高めることができる。

ストラテジーソースコード
/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//  Created by Leon Ross
//study(title="OutsideDownOpenLower", shorttitle="ODOL", overlay=true)
strategy(title = "Outside", shorttitle = "OB", overlay = true )
  

//Window of time
//start     = timestamp(2018, 01, 01, 00, 00)  // backtest start window
//finish    = timestamp(2018, 12, 31, 23, 59)        // backtest finish window
//window()  => time >= start and time <= finish ? true : false // create function "within window of time"  

//Conditions
outsideBar = low < low[1] and high > high[1] and close < open
allConditions = outsideBar
  
//Stop and Take Profit as percentages
//inpTakeProfit   = input(2, title='Take Profit %', type=float)/100
//takeProfitValue = strategy.position_avg_price * (1 + inpTakeProfit)
//useTakeProfit   = inpTakeProfit  > 0 ?  takeProfitValue : na
//inpStopLoss     = input(1, title='Stop Loss %', type=float)/100
//stopLossValue = strategy.position_avg_price * (1 - inpStopLoss)
//useStopLoss     = inpStopLoss    > 0 ?  stopLossValue   : na
//entry = strategy.position_avg_price



//Stop as last bars low and profit as percentage
entry = strategy.position_avg_price
inpTakeProfit   = input(2.0, title='Take Profit %', type=float)/100
takeProfitValue = strategy.position_avg_price * (1 + inpTakeProfit)
useTakeProfit   = inpTakeProfit  > 0 ?  takeProfitValue : na
inpStopLoss     = valuewhen(allConditions, low, 0)
stopLossValue = inpStopLoss
useStopLoss     = inpStopLoss    > 0 ?  stopLossValue   : na
    



//Plots
bgcolor(allConditions ==1 ? aqua : na, transp=70)
plot(entry, color=blue, style=linebr, linewidth=2)
plot(useStopLoss, color=red, style=linebr, linewidth=2)
plot(useTakeProfit, color=green, style=linebr, linewidth=2)


//Entires
strategy.entry(id = "Long", long = true, when = allConditions) // use function or simple condition to decide when to get in

//Exits
//if (barssince(allConditions) == 2)
    //strategy.close("Long")
//else
strategy.exit("Exit Long", from_entry = "Long", stop = useStopLoss)