トレーディング戦略はピーク・トゥ・ピーク・パターンをベースに

作者: リン・ハーンチャオチャン開催日:2024年2月20日 15:40:58
タグ:

img

概要

この戦略は"ピーク・トゥ・ピーク・パターンベース・トレーディング戦略"と呼ばれる.これは主にキャンドルスティック・チャートにおけるピーク・トゥ・ピーク・パターンを使用し,エントリーと出口を決定する.これは技術分析に基づく戦略である.

戦略原則

この戦略は,キャンドルスタイク・チャートにおけるピークからピークのパターンを識別するために,上昇するピーク (upFractal) と下降するピーク (downFractal) を定義します.

具体的には,上昇ピークの判断論理は:現在のキャンドルスタイクの高値は最近のnキャンドルスタイクの高値であり,次のキャンドルスタイクの高値は現在のものを超えない.

落ちるピークの判断論理は,現在のキャンドルスタイクの底辺は,最近のnキャンドルスタイクの最下位であり,次のキャンドルスタイクの底辺は,現在の底辺を下回らない.

ブル式変数とループは,前のnと後のnのキャンドルスタイク高/低と現在の間の関係を決定し,最終的に上昇と減少ピークを特定するために使用されます.

したがって,この戦略の基本的な論理は,

  1. 上昇するピークと低下するピークを識別する
  2. 高い峰に長,低い峰に短

利点分析

この戦略の利点は以下の通りです.

  1. ピーク・トゥ・ピーク・パターン 識別しやすい 操作が簡単
  2. 基本的要素に影響を受けない技術的パターンに基づく
  3. 可能性のある小額借入

リスク分析

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

  1. ピークからピークまでのパターンの判断が不正確で,ベストエントリータイムを逃す可能性があります
  2. 市場が急激に動いているときにストップロスを設定するのは難しい
  3. 他の要因を無視する

対策:

  1. 論理を最適化するためにピークからピークパターンのパラメータを調整
  2. ストップ・ロスの位置を決定するために他の指標と組み合わせる
  3. 基本分析または他の分析と併用する

オプティマイゼーションの方向性

戦略を最適化するためのいくつかの方向性:

  1. パラメータ調節オプションを増やしてピークからピークのパターンをよりよく識別する
  2. ストップ・ロスト論理を追加する
  3. 取引量,波動性,その他の指標を考慮
  4. 異なる時間枠の分析を組み合わせる

概要

この戦略は,ピークからピークパターンの原則に基づいて,おそらくより小さな引き下げで操作するのが簡単です. しかし,まだいくつかのリスクがあり,そのパフォーマンスを最大化するために他の分析方法と組み合わせなければなりません. 次のステップはパターン判断,ストップ損失,インジケーター最適化などの正確性を改善することです.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("sanju parmar", shorttitle="sanju trading empire", overlay=true)

// Define "n" as the number of periods and keep a minimum value of 2 for error handling.
n = input.int(title="Periods", defval=2, minval=2)

// UpFractal
bool upflagDownFrontier = true
bool upflagUpFrontier0 = true
bool upflagUpFrontier1 = true
bool upflagUpFrontier2 = true
bool upflagUpFrontier3 = true
bool upflagUpFrontier4 = true

for i = 1 to n
    upflagDownFrontier := upflagDownFrontier and (high[n-i] < high[n])
    upflagUpFrontier0 := upflagUpFrontier0 and (high[n+i] < high[n])
    upflagUpFrontier1 := upflagUpFrontier1 and (high[n+1] <= high[n] and high[n+i + 1] < high[n])
    upflagUpFrontier2 := upflagUpFrontier2 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+i + 2] < high[n])
    upflagUpFrontier3 := upflagUpFrontier3 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+i + 3] < high[n])
    upflagUpFrontier4 := upflagUpFrontier4 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+4] <= high[n] and high[n+i + 4] < high[n])
flagUpFrontier = upflagUpFrontier0 or upflagUpFrontier1 or upflagUpFrontier2 or upflagUpFrontier3 or upflagUpFrontier4

upFractal = (upflagDownFrontier and flagUpFrontier)


// downFractal
bool downflagDownFrontier = true
bool downflagUpFrontier0 = true
bool downflagUpFrontier1 = true
bool downflagUpFrontier2 = true
bool downflagUpFrontier3 = true
bool downflagUpFrontier4 = true

for i = 1 to n
    downflagDownFrontier := downflagDownFrontier and (low[n-i] > low[n])
    downflagUpFrontier0 := downflagUpFrontier0 and (low[n+i] > low[n])
    downflagUpFrontier1 := downflagUpFrontier1 and (low[n+1] >= low[n] and low[n+i + 1] > low[n])
    downflagUpFrontier2 := downflagUpFrontier2 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+i + 2] > low[n])
    downflagUpFrontier3 := downflagUpFrontier3 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+i + 3] > low[n])
    downflagUpFrontier4 := downflagUpFrontier4 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+4] >= low[n] and low[n+i + 4] > low[n])
flagDownFrontier = downflagUpFrontier0 or downflagUpFrontier1 or downflagUpFrontier2 or downflagUpFrontier3 or downflagUpFrontier4

downFractal = (downflagDownFrontier and flagDownFrontier)

plotshape(downFractal, style=shape.triangleup, location=location.belowbar, offset=-n, color=#18f523, size = size.small)
plotshape(upFractal, style=shape.triangledown, location=location.abovebar, offset=-n, color=#cf3d11, size = size.small)

// Strategy Conditions
longCondition = upFractal
shortCondition = downFractal

// Strategy Entry and Exit
if (longCondition)
    strategy.entry("Buy", strategy.long)
if (shortCondition)
    strategy.entry("Sell", strategy.short)


もっと