
この戦略は,古代ギリシャの海の神ポセンドゥーの三叉のようなもので,3つのキーポイントで強力な取引兵器を構築します! 市場における3つの重要な転換点 (ハブ軸) を探し,そして”三叉“の形状の通路を描き,価格突破の黄金時を捕捉します.
️ - 1つ目は支柱,もう2つ目はテントの境界線を構成する. 風 (価格) がテントの境界線を突破すると,それが私たちの行動の信号です!
集中する!この戦略の要点は,
混雑した地下鉄の駅で 人流の3つのポイントを観察し, 群衆がどの方向に流れていくか予測するようなものです!
洞窟のガイドフォローアップする価値は,すべてのブレークスルーにはない!
条件を入れ替える:
条件を空いた:
この戦略の最も親切なところは 科学の資金管理を組み込むことです!
遊園地で山車に乗ったときのように,安全帯はしっかりと締め付けられ,刺激の余地も残さなければなりません.
♀️ 取引は自転車に乗るようなものです ♀️ 初めは苦労するかもしれませんが,バランスをとれば自由になります! この三角の戦略は,あなたの”補助輪”で,市場の中でバランスをとって進みます.
/*backtest
start: 2024-10-29 00:00:00
end: 2025-10-27 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("Pitchfork Trading Friends",
overlay=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=100) // We will calculate size manually
// === 1. INPUTS ===
leftBars = input.int(10, "Pivot Left Bars", minval=1)
rightBars = input.int(10, "Pivot Right Bars", minval=1)
riskPercent = input.float(1.0, "Risk Per Trade %", minval=0.1, step=0.1)
// === 2. PIVOT DETECTION & STORAGE ===
// Find pivot points
float ph = ta.pivothigh(high, leftBars, rightBars)
float pl = ta.pivotlow(low, leftBars, rightBars)
// Store the last 3 pivots (P1, P2, P3)
var float p1_price = na
var int p1_bar = na
var float p2_price = na
var int p2_bar = na
var float p3_price = na
var int p3_bar = na
var int lastPivotType = 0 // 0=none, 1=high, -1=low
// Update pivots when a new one is found, ensuring they alternate
if not na(ph) and lastPivotType != 1
p1_price := p2_price
p1_bar := p2_bar
p2_price := p3_price
p2_bar := p3_bar
p3_price := ph
p3_bar := bar_index[rightBars]
lastPivotType := 1
if not na(pl) and lastPivotType != -1
p1_price := p2_price
p1_bar := p2_bar
p2_price := p3_price
p2_bar := p3_bar
p3_price := pl
p3_bar := bar_index[rightBars]
lastPivotType := -1
// === 3. PITCHFORK CALCULATION & DRAWING ===
// We need 3 valid points to draw
bool has3Pivots = not na(p1_bar) and not na(p2_bar) and not na(p3_bar)
// Declare lines
var line medianLine = na
var line upperLine = na
var line lowerLine = na
// Declare line prices for strategy logic
var float ml_price = na
var float ul_price = na
var float ll_price = na
if (has3Pivots)
// P1, P2, P3 coordinates
p1_y = p1_price
p1_x = p1_bar
p2_y = p2_price
p2_x = p2_bar
p3_y = p3_price
p3_x = p3_bar
// Calculate midpoint of P2-P3
mid_y = (p2_y + p3_y) / 2.0
mid_x = (p2_x + p3_x) / 2.0
// Calculate Median Line (ML) slope
float ml_slope = (mid_y - p1_y) / (mid_x - p1_x)
// Calculate price on current bar for each line
// y = m*(x - x_n) + y_n
ml_price := ml_slope * (bar_index - p1_x) + p1_y
// Identify which pivot is high (P2 or P3)
float highPivot_y = p2_y > p3_y ? p2_y : p3_y
int highPivot_x = p2_y > p3_y ? p2_x : p3_x
float lowPivot_y = p2_y < p3_y ? p2_y : p3_y
int lowPivot_x = p2_y < p3_y ? p2_x : p3_x
// Upper/Lower line prices
ul_price := ml_slope * (bar_index - highPivot_x) + highPivot_y
ll_price := ml_slope * (bar_index - lowPivot_x) + lowPivot_y
// === 4. STRATEGY LOGIC ===
// Define trend by pitchfork slope
bool trendUp = ml_slope > 0
bool trendDown = ml_slope < 0
// Entry Conditions
bool longEntry = ta.crossover(close, ul_price) // Breakout
bool shortEntry = ta.crossunder(close, ll_price) // Breakdown
// Risk Calculation
float capital = strategy.equity
float riskAmount = (capital * riskPercent) / 100
// --- LONG TRADE ---
if (longEntry and trendUp)
float sl_price = ml_price // SL at median line
float stop_loss_pips = close - sl_price
float tp_price = close + stop_loss_pips // 1:1 TP
// Calculate position size
float positionSize = riskAmount / (stop_loss_pips * syminfo.pointvalue)
if (positionSize > 0)
strategy.entry("Long", strategy.long, qty=positionSize)
strategy.exit("SL/TP Long", from_entry="Long", stop=sl_price, limit=tp_price)
// --- SHORT TRADE ---
if (shortEntry and trendDown)
float sl_price = ml_price // SL at median line
float stop_loss_pips = sl_price - close
float tp_price = close - stop_loss_pips // 1:1 TP
// Calculate position size
float positionSize = riskAmount / (stop_loss_pips * syminfo.pointvalue)
if (positionSize > 0)
strategy.entry("Short", strategy.short, qty=positionSize)
strategy.exit("SL/TP Short", from_entry="Short", stop=sl_price, limit=tp_price)