アジアセッションの高値と安値のブレイクアウト戦略


作成日: 2024-03-29 17:12:49 最終変更日: 2024-03-29 17:12:49
コピー: 0 クリック数: 1395
1
フォロー
1617
フォロワー

アジアセッションの高値と安値のブレイクアウト戦略

概要

この戦略の主な構想は,アジア盤の高低を突破点として利用し,欧州・アメリカ盤の開盤後数時間以内に,価格がアジア盤の高を突破した場合,多めにし,アジア盤の低を突破した場合,空白をすることである.同時に,ストップとストップを設定し,リスクを制御する.この戦略は,最大同時開設ポジションが100000であるために,毎日1つの取引しか開かない.

戦略原則

  1. アジア盤の取引時間を設定し,開始と終了時間を設定できます.
  2. アジア盤の間,その日の最高値と最低値が記録された.
  3. ユーロ・アメリカ盤の開盤後の一定の時間 (ユーザのカスタマイズされた偏移時間数) で,価格がアジア盤の高点を突破すると多し,アジア盤の低点を突破すると空し.
  4. 停止と停止を設定し,停止と停止のポイントをカスタムすることができます.
  5. 1日1回の新規取引のみで,最大同時開設数は100000です.
  6. 取引が完了した場合は,新しい取引は行われません.

優位分析

  1. アジア盤の比較的穏やかな特性を利用して,その日のアジア盤の高低点を突破点として,欧州・アメリカ盤のトレンドチャンスをより良く捉えることができる。
  2. ストップ・ロズとストップ・ストップを設定することで,リスクを効果的にコントロールし,利益が稼働し,損失がすぐに止まるようにする.
  3. 過剰な取引と資金の過剰な使用を防ぐために,毎日1回の取引と最大同時開設の数を制限します.
  4. ユーザは,自分のニーズに応じて,アジアディスク時間や偏移時間などのパラメータを柔軟に設定できます.

リスク分析

  1. アジア盤の高低は必ずしもその日の本当の高低とは限らないが,ユーロ・アメリカ盤が突破してすぐに引き下がり,損失を招く可能性がある.
  2. 固定ポイントのストップとストップは,市場の大幅な変動に対応できない場合があり,時には早めにストップしたり,時には早めにストップしたりすることがあります.
  3. 傾向が不明な場合や市場の変動が大きい場合,この戦略は,頻繁にポジションを閉め,損失を起こす可能性があります.

最適化の方向

  1. ATRなどの波動性指標に基づいて,異なる状況に対応するために,ストープとストップのポイントを動的に調整することを考えることができます.
  2. MAのようなトレンド判断の指標をいくつか加えることができ,大きなトレンドが上昇する時に多めに,下向きに空いて,成功率を向上させることができる.
  3. 異なるパラメータを分期的に設定することを考えることができます.例えば,ユーロ・アメリカ盤の開盤初期に最小のストップ・ストップを使用し,トレンドが明らかであるときにストップ・ストップを大きくします.

要約する

この戦略は,アジア盤の高低点を突破点として利用して取引し,ヨーロッパ・アメリカ盤の傾向がより顕著な品種で使用するのに適しています.しかし,固定ポイント数ストップ・ローズ・ストップと標準的な突破入場方法にもいくつかの限界があります.いくつかの動的およびトレンドの指標を導入することによって,この戦略を最適化して,より良い効果を得ることができます.

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

//@version=4
strategy("Asia Session", overlay=true)

var hourSessionStart = input(19, "Asia session start hour", minval=0, maxval=23)
var hourSessionStop  = input(1, "Asia session end hour", minval=0, maxval=23)
var offsetHours = input(3, "Offset hours after Asia session end")

var float hi              = na
var float lo              = na
var float plotHi          = na
var float plotLo          = na

var bool  inSession       = na
var bool  enteringSession = na
var bool  exitingSession  = na

inSession       := (hour >= hourSessionStart or hour < hourSessionStop)
enteringSession := inSession and not inSession[1]
exitingSession  := not inSession and inSession[1]

if enteringSession
    plotLo := na
    plotHi := na

if inSession
    lo := min(low,  nz(lo, 1.0e23))
    hi := max(high, nz(hi))

if exitingSession
    plotLo := lo
    plotHi := hi
    lo     := na
    hi     := na

bgcolor(inSession ? color.blue : na)

plot(plotLo, "Asia session Low",  color.red,   style=plot.style_linebr)
plot(plotHi, "Asia session High", color.green, style=plot.style_linebr)

// Implementazione delle condizioni di entrata
var float asiaSessionLow = na
var float asiaSessionHigh = na
var int maxTrades = 100000 // Impostiamo il massimo numero di operazioni contemporanee
var int tradesOpened = 0 // Variabile per tenere traccia del numero di operazioni aperte
var bool tradeOpened = false
var bool operationClosed = false // Nuova variabile per tenere traccia dello stato di chiusura dell'operazione

// Calcolo del range asiatico
if (inSession)
    asiaSessionLow := lo
    asiaSessionHigh := hi

// Apertura di un solo trade al giorno
if (enteringSession)
    tradeOpened := false

// Condizioni di entrata
var float stopLoss = 300 * syminfo.mintick
var float takeProfit = 300 * syminfo.mintick

if (not tradeOpened and not operationClosed and close < asiaSessionLow and tradesOpened < maxTrades and hour >= hourSessionStop + offsetHours)
    strategy.entry("Buy", strategy.long)
    tradeOpened := true
    tradesOpened := tradesOpened + 1 // Incrementiamo il contatore delle operazioni aperte

if (not tradeOpened and not operationClosed and close > asiaSessionHigh and tradesOpened < maxTrades and hour >= hourSessionStop + offsetHours)
    strategy.entry("Sell", strategy.short)
    tradeOpened := true
    tradesOpened := tradesOpened + 1 // Incrementiamo il contatore delle operazioni aperte

// Impostazione dello stop loss e del take profit
strategy.exit("Stop Loss / Take Profit", "Buy", stop=close - stopLoss, limit=close + takeProfit)
strategy.exit("Stop Loss / Take Profit", "Sell", stop=close + stopLoss, limit=close - takeProfit)