3分間のKライン高値と安値に基づく日中ブレイクスルー戦略

MA EMA
作成日: 2024-06-14 15:43:42 最終変更日: 2024-06-14 15:43:42
コピー: 3 クリック数: 873
1
フォロー
1617
フォロワー

3分間のKライン高値と安値に基づく日中ブレイクスルー戦略

概要

この戦略の主な構想は,3分間のK線の高低を突破点として利用し,価格が3分間のK線高を突破すると多めにし,低を突破すると空白する.この戦略は,日中の取引に適用され,毎日閉じる時に平仓し,翌日に取引を続ける.この戦略の優点は,単純に分かりやすく,容易に実行され,リスクも比較的低いことである.しかし,この戦略には,市場波動が大きい場合,大きな引き戻りが発生する可能性など,いくつかのリスクも存在している.

戦略原則

  1. 3番目のK線の最高値と最低値を記録するために,毎日の開盤後最初の3分間のK線データを取得します.
  2. 価格が第3根K線の最高値を破るとき,多項を開く.目標価格は開設価格に100ポイントを加え,閉店するか,目標価格平仓に達するまで.
  3. 価格が第3根K線の最低値を破るとき,空券を開き,ターゲット価格を開設価格に100ポイント引いて,閉店するか,ターゲット価格平仓に達するまで.
  4. 取引が終了すると,次の日に取引を継続します.

戦略的優位性

  1. シンプルで理解しやすい,実行しやすい.
  2. 資金活用率が高い.
  3. リスクは比較的低く,ストップダメージは明確です.
  4. 傾向が強い市場には適用されます.

戦略リスク

  1. 市場が波動すると,大きな引き下がりが起こる可能性があります.
  2. 取引開始時に価格の変動が大きく,リスクが高くなります.
  3. 突破口の位置がよくわからないので,誤判が容易です.

戦略最適化の方向性

  1. 移動平均などの指標を導入し,市内の騒音信号をフィルタリングすることを検討できます.
  2. ポジション開設時間を最適化して,開設時間を回避することも考えられます.
  3. ストップ・ストップ・ロスの位置を最適化して,戦略の安定性を向上させることも考えられます.
  4. ポジションマネジメントへの参加を考慮し,撤回リスクを制御する.

要約する

この戦略は,3分間のK線の高低点突破をベースに,日内取引に適用される.利点は,単純で分かりやすく,実行しやすいこと,リスクが比較的低いことである.しかし,市場波動が大きいとき,大きな引き下がりが起こる可能性があるというリスクもある.フィルター信号,ポジション開設時間を最適化,ストップ・ロスト・ポイントを最適化,ポジション管理を組み込むなど,この戦略を最適化することで,戦略の安定性と収益性を向上させることができる.

ストラテジーソースコード
/*backtest
start: 2023-06-08 00:00:00
end: 2024-06-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Banknifty Strategy", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)

// Parameters
start_date = input(timestamp("2024-01-01 00:00"), title="Start Date")
end_date = input(timestamp("2024-06-07 23:59"), title="End Date")

// Time settings
var startTime = timestamp("2024-06-09 09:15")
var endTime = timestamp("2024-06-09 09:24")

// Variables to store the 3rd 3-minute candle
var bool isCandleFound = false
var float thirdCandleHigh = na
var float thirdCandleLow = na
var float baseCandleHigh = na
var float baseCandleLow = na
var float entryPrice = na
var float targetPrice = na

// Check if the current time is within the specified date range
inDateRange = true

// Capture the 3rd 3-minute candle
if (inDateRange and not isCandleFound)
    var int candleCount = 0
    if (true)
        candleCount := candleCount + 1
        if (candleCount == 3)
            thirdCandleHigh := high
            thirdCandleLow := low
            isCandleFound := true

// Wait for a candle to close above the high of the 3rd 3-minute candle
if (isCandleFound and na(baseCandleHigh) and close > thirdCandleHigh)
    baseCandleHigh := close
    baseCandleLow := low

// Strategy logic for buying and selling
if (not na(baseCandleHigh))
    // Buy condition
    if (high > baseCandleHigh and strategy.opentrades == 0)
        entryPrice := high
        targetPrice := entryPrice + 100
        strategy.entry("Buy", strategy.long, limit=entryPrice)
    // Sell condition
    if (low < baseCandleLow and strategy.opentrades == 0)
        entryPrice := low
        targetPrice := entryPrice - 100
        strategy.entry("Sell", strategy.short, limit=entryPrice)

// Exit conditions
if (strategy.opentrades > 0)
    // Exit BUY trade when profit is 100 points or carry forward to next day
    if (strategy.position_size > 0 and high >= targetPrice)
        strategy.exit("Take Profit", from_entry="Buy", limit=targetPrice)
    // Exit SELL trade when profit is 100 points or carry forward to next day
    if (strategy.position_size < 0 and low <= targetPrice)
        strategy.exit("Take Profit", from_entry="Sell", limit=targetPrice)

// Close trades at the end of the day
if (time == timestamp("2024-06-09 15:30"))
    strategy.close("Buy", comment="Market Close")
    strategy.close("Sell", comment="Market Close")

// Plotting for visualization
plotshape(series=isCandleFound, location=location.belowbar, color=color.red, style=shape.labeldown, text="3rd 3-min candle")
plot(baseCandleHigh, title="Base Candle High", color=color.green, linewidth=2, style=plot.style_line)
plot(baseCandleLow, title="Base Candle Low", color=color.red, linewidth=2, style=plot.style_line)