
یہ متعدد تکنیکی اشارے کے مجموعے پر مبنی ایک خود کار طریقے سے رجحان ٹریکنگ حکمت عملی ہے ، جو مختلف مارکیٹ کی خصوصیات کے مطابق پیرامیٹرز کو خود بخود ایڈجسٹ کرسکتی ہے۔ اس حکمت عملی میں مارکیٹ کے رجحانات کو پکڑنے کے لئے فنڈ فلو اشارے ((CMF) ، ڈور ٹرینڈ پرائس شیک اشارے ((DPO) اور کوپ پوک اشارے ((Coppock) کا استعمال کیا گیا ہے ، اور اتار چڑھاؤ کو ایڈجسٹ کرنے والے عوامل کو مختلف مارکیٹوں کی خصوصیات کے مطابق ڈھال لیا گیا ہے۔ اس حکمت عملی میں پوزیشن مینجمنٹ اور رسک کنٹرول کا ایک مکمل نظام ہے ، جو مارکیٹ میں اتار چڑھاؤ کی متحرک رفتار کے مطابق تجارت کے پیمانے کو ایڈجسٹ کرنے کے قابل ہے۔
اس حکمت عملی کا بنیادی منطق یہ ہے کہ رجحان کی سمت اور تجارت کے وقت کو متعدد اشارے کے ساتھ مل کر تصدیق کی جائے۔ خاص طور پر:
یہ حکمت عملی ایک مکمل رجحان ٹریکنگ سسٹم ہے ، جس میں کثیر اشارے کے ملاپ اور خطرے کے کنٹرول کے طریقہ کار کے ذریعہ ، منافع کی ضمانت دیتے ہوئے خطرے پر بھی اچھی طرح سے قابو پایا جاتا ہے۔ حکمت عملی میں توسیع کی صلاحیت ہے ، جس میں بہت زیادہ اصلاح کی گنجائش ہے۔ یہ تجویز کی جاتی ہے کہ عملی تجارت میں چھوٹے پیمانے پر شروع کریں ، تجارت کا پیمانہ آہستہ آہستہ بڑھائیں ، اس کے ساتھ ساتھ حکمت عملی کی کارکردگی کی مسلسل نگرانی کریں اور پیرامیٹرز کو بروقت ایڈجسٹ کریں۔
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Multi-Market Adaptive Trading Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Input parameters
i_market_type = input.string("Crypto", "Market Type", options=["Forex", "Crypto", "Futures"])
i_risk_percent = input.float(1, "Risk Per Trade (%)", minval=0.1, maxval=100, step=0.1)
i_volatility_adjustment = input.float(1.0, "Volatility Adjustment", minval=0.1, maxval=5.0, step=0.1)
i_max_position_size = input.float(5.0, "Max Position Size (%)", minval=1.0, maxval=100.0, step=1.0)
i_max_open_trades = input.int(3, "Max Open Trades", minval=1, maxval=10)
// Indicator Parameters
i_cmf_length = input.int(20, "CMF Length", minval=1)
i_dpo_length = input.int(21, "DPO Length", minval=1)
i_coppock_short = input.int(11, "Coppock Short ROC", minval=1)
i_coppock_long = input.int(14, "Coppock Long ROC", minval=1)
i_coppock_wma = input.int(10, "Coppock WMA", minval=1)
i_atr_length = input.int(14, "ATR Length", minval=1)
// Market-specific Adjustments
volatility_factor = i_market_type == "Forex" ? 0.1 : i_market_type == "Futures" ? 1.5 : 1.0
volatility_factor *= i_volatility_adjustment
leverage = i_market_type == "Forex" ? 100.0 : i_market_type == "Futures" ? 20.0 : 3.0
// Calculate Indicators
mf_multiplier = ((close - low) - (high - close)) / (high - low)
mf_volume = mf_multiplier * volume
cmf = ta.sma(mf_volume, i_cmf_length) / ta.sma(volume, i_cmf_length)
dpo_offset = math.floor(i_dpo_length / 2) + 1
dpo = close - ta.sma(close, i_dpo_length)[dpo_offset]
roc1 = ta.roc(close, i_coppock_short)
roc2 = ta.roc(close, i_coppock_long)
coppock = ta.wma(roc1 + roc2, i_coppock_wma)
atr = ta.atr(i_atr_length)
// Define Entry Conditions
long_condition = cmf > 0 and dpo > 0 and coppock > 0 and ta.crossover(coppock, 0)
short_condition = cmf < 0 and dpo < 0 and coppock < 0 and ta.crossunder(coppock, 0)
// Calculate Position Size
account_size = strategy.equity
risk_amount = math.min(account_size * (i_risk_percent / 100), account_size * (i_max_position_size / 100))
position_size = (risk_amount / (atr * volatility_factor)) * leverage
// Execute Trades
if (long_condition and strategy.opentrades < i_max_open_trades)
sl_price = close - (atr * 2 * volatility_factor)
tp_price = close + (atr * 3 * volatility_factor)
strategy.entry("Long", strategy.long, qty=position_size)
strategy.exit("Long Exit", "Long", stop=sl_price, limit=tp_price)
if (short_condition and strategy.opentrades < i_max_open_trades)
sl_price = close + (atr * 2 * volatility_factor)
tp_price = close - (atr * 3 * volatility_factor)
strategy.entry("Short", strategy.short, qty=position_size)
strategy.exit("Short Exit", "Short", stop=sl_price, limit=tp_price)
// Plot Indicators
plot(cmf, color=color.blue, title="CMF")
plot(dpo, color=color.green, title="DPO")
plot(coppock, color=color.red, title="Coppock")
hline(0, "Zero Line", color=color.gray)
// Alerts
alertcondition(long_condition, title="Long Entry", message="Potential Long Entry Signal")
alertcondition(short_condition, title="Short Entry", message="Potential Short Entry Signal")
// // Performance reporting
// if barstate.islastconfirmedhistory
// label.new(bar_index, high, text="Strategy Performance:\nTotal Trades: " + str.tostring(strategy.closedtrades) +
// "\nWin Rate: " + str.tostring(strategy.wintrades / strategy.closedtrades * 100, "#.##") + "%" +
// "\nProfit Factor: " + str.tostring(strategy.grossprofit / strategy.grossloss, "#.##"))