کراس پیریڈک بریچ سسٹم

مصنف:چاؤ ژانگ، تاریخ: 2023-11-22 15:22:49
ٹیگز:

img

جائزہ

یہ ایک مقداری تجارتی حکمت عملی ہے جو دونوں سمتوں میں توڑنے والی کارروائیوں کے لئے چلنے والے اوسط اور ایم اے سی ڈی اشارے کا استعمال کرتی ہے۔ اس میں کراس پیریڈ آپریشن کی خصوصیت ہے ، یعنی طویل وقت کے فریموں پر رجحان کی سمت کا فیصلہ کرنا اور مختصر وقت کے فریموں پر مواقع تلاش کرنا۔

حکمت عملی کا اصول

اس حکمت عملی میں رجحان کی سمت کا تعین کرنے کے لئے مختلف لمبائی کے 3 ایس ایم ایم اے حرکت پذیر اوسط اور 1 ای ایم اے حرکت پذیر اوسط کا استعمال کیا جاتا ہے۔ ایک ہی وقت میں ، یہ قلیل مدتی رجحانات اور داخلے کے مواقع کا فیصلہ کرنے کے لئے ایم اے سی ڈی اشارے کو جوڑتا ہے۔ خاص طور پر ، خریدنے کی ٹرگر شرط یہ ہے: قیمت تمام حرکت پذیر اوسطوں کو اوپر کی طرف توڑ دیتی ہے ، اور مختصر اوسط لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لم

یہ دیکھا جاسکتا ہے کہ یہ حکمت عملی درمیانی اور طویل مدتی رجحانات کی سمتوں کا فیصلہ کرنے کے لئے چلنے والے اوسط کا استعمال کرتی ہے ، اور MACD قلیل مدتی الٹ پھیروں کا فیصلہ کرکے داخلے کے بہتر مواقع کو پکڑنے کے لئے۔ یہ ملٹی ٹائم فریم مشترکہ آپریشن حکمت عملی کی ایک اہم خصوصیت ہے۔

فوائد کا تجزیہ

اس کراس پیریڈ آپریشن کا فائدہ یہ ہے کہ یہ اعلی امکان کی رجحان کی سمت میں داخل ہونے کے لئے مناسب قلیل مدتی الٹ پوائنٹس کا انتخاب کرسکتا ہے ، اس طرح بہتر رسک - انعام کا تناسب حاصل ہوتا ہے۔ خاص طور پر ، اس کے بنیادی طور پر مندرجہ ذیل 3 فوائد ہیں:

  1. 3 ایس ایم ایم اے اوسط اور 1 ای ایم اے لائن ملٹی لیول فلٹرنگ درمیانی اور طویل مدتی رجحان کی سمت کو مؤثر طریقے سے طے کرسکتی ہے تاکہ رجحان کے خلاف تجارت سے گریز کیا جاسکے۔

  2. ایم اے سی ڈی اشارے کے ذریعے اندراج کے لئے قلیل مدتی الٹ پوائنٹس کا جائزہ لینے سے بہتر اندراج کی قیمت کی سطح حاصل کی جاسکتی ہے۔

  3. فلٹرنگ کی شرط کے طور پر سخت حرکت پذیر اوسط ترتیب کا تعلق غلط آپریشن کے امکان کو کم کرسکتا ہے۔

خطرے کا تجزیہ

اس حکمت عملی کے اہم خطرات یہ ہیں:

  1. خود حرکت پذیر اوسط زیادہ پسماندہ خصوصیات رکھتے ہیں ، جو قلیل مدتی رجحان کی تبدیلی کے مواقع کو کھو سکتے ہیں۔

  2. MACD اشارے جھوٹے سگنل پیدا کرنے کے لئے موزوں ہیں اور قیمت کی سطح کے ساتھ مل کر فلٹر کرنے کی ضرورت ہے.

  3. متعدد ٹائم فریم فیصلے حکمت عملی کی پیچیدگی میں اضافہ کرتے ہیں اور ناکامی کا شکار ہوتے ہیں۔

خطرہ 1 اور خطرہ 2 سے نمٹنے کے ل we ، ہم مختصر مدت کے رجحان کی تبدیلیوں کا تیزی سے جواب دینے کے ل the حرکت پذیر اوسط اور سگنل سائیکل کو مناسب طریقے سے مختصر کرکے اصلاح کرسکتے ہیں۔ خطرہ 3 کے ل we ، ہمیں مختلف اقسام اور سائیکلوں کے لئے اصلاح اور جانچ کرنے کی ضرورت ہے تاکہ اس قسم کی خصوصیات کے مطابق حکمت عملی کے پیرامیٹرز کو سختی سے ایڈجسٹ کیا جاسکے۔

اصلاح کی ہدایات

اس حکمت عملی کو بہتر بنانے کے اہم پہلوؤں میں شامل ہیں:

  1. متحرک اوسط اور MACD کے پیرامیٹرز کو بہتر بنائیں تاکہ مختلف سائیکلوں اور اقسام کی خصوصیات سے بہترین مطابقت رکھیں۔ جیسے کہ متحرک اوسط کی لمبائی کو مختصر کرنا ، سگنل پیرامیٹر کو بڑھانا وغیرہ۔

  2. مناسب حرکت پذیر اسٹاپ قائم کرنے کے لئے اے ٹی آر یا دیگر اشارے کا استعمال کرتے ہوئے اسٹاپ نقصان کی حکمت عملیوں کو بڑھانا۔ اس سے حکمت عملی کے خطرے کے کنٹرول میں نمایاں اضافہ ہوسکتا ہے۔

  3. ایم اے سی ڈی سگنلز کی جگہ بہتر اشارے یا فلٹرنگ کے طریقوں کی تلاش کریں۔ مثال کے طور پر ، اتار چڑھاؤ کے اشارے متعارف کروائیں اور اس کے مطابق سگنل فلٹر کریں۔

  4. منافع اور نقصان کے تناسب کے مختلف تعلقات کا تجربہ کریں تاکہ بہتر رسک - انعام کے تناسب کے ساتھ پیرامیٹر کے مجموعے حاصل کیے جائیں۔

خلاصہ

عام طور پر ، یہ کراس ٹائم فریم سوچ کے ساتھ ایک انوکھا پیش رفت کا نظام ہے۔ یہ متعدد ٹائم فریموں میں مشترکہ فیصلے کی آپریشن کی حکمت عملی حاصل کرنے کے لئے حرکت پذیر اوسط اور ایم اے سی ڈی دونوں کے فوائد کا استعمال کرتا ہے۔ پیرامیٹرز اور فلٹرنگ کے معیار کو بہتر بنانے اور ایڈجسٹ کرنے سے ، یہ حکمت عملی ایک بہت ہی عملی مقداری تجارتی حل بن سکتی ہے۔


/*backtest
start: 2023-10-22 00:00:00
end: 2023-11-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SoftKill21

//@version=4
strategy("Koala Script",initial_capital=1000, 
     commission_type=strategy.commission.cash_per_contract, 
     commission_value=0.000065,
     slippage=3)
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 8, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2031, title = "To Year", minval = 1970)
 


startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)




len = input(3, minval=1, title="Length")
src = input(hl2, title="Source")
smma = 0.0
sma1 = sma(src, len)
smma := na(smma[1]) ? sma1 : (smma[1] * (len - 1) + src) / len

len2 = input(6, minval=1, title="Length")
src2 = input(hl2, title="Source")
smma2 = 0.0
sma2 = sma(src2, len2)
smma2 := na(smma2[1]) ? sma2 : (smma2[1] * (len2 - 1) + src2) / len2

len3 = input(9, minval=1, title="Length")
src3 = input(hl2, title="Source")
smma3 = 0.0
sma3 = sma(src3, len3)
smma3 := na(smma3[1]) ? sma3 : (smma3[1] * (len3 - 1) + src3) / len3

len4 = input(50, minval=1, title="Length")
src4 = input(close, title="Source")
smma4 = 0.0
sma4 = sma(src4, len4)
smma4 := na(smma4[1]) ? sma4  : (smma4[1] * (len4 - 1) + src4) / len4

len5 = input(200, minval=1, title="Length")
src5 = input(close, title="Source")
out5 = ema(src5, len5)

timeinrange(res, sess) => time(res, sess) != 0
london=timeinrange(timeframe.period, "0300-1045")
londonEntry=timeinrange(timeframe.period, "0300-0845")

time_cond = time >= startDate and time <= finishDate and londonEntry

fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
srcc = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)


// Calculating
fast_ma = sma_source ? sma(srcc, fast_length) : ema(srcc, fast_length)
slow_ma = sma_source ? sma(srcc, slow_length) : ema(srcc, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal


longCond = close > out5 and close > smma4 and close > smma3 and close > smma2 and close > smma and londonEntry and smma > smma2 and smma2>smma3 and smma3>smma4 and smma4>out5 
shortCond = close < out5 and close < smma4 and close < smma3 and close < smma2 and close < smma and londonEntry and smma < smma2 and smma2<smma3 and smma3<smma4 and smma4<out5 
//longCond2 = crossover(close,out5) and crossover(close,smma4) and crossover(close,smma3) and crossover(close,smma2) and crossover(close,smma) and time_cond
//shortCond2 = crossunder(close,out5) and crossunder(close,smma4) and crossunder(close,smma3) and crossunder(close,smma2) and crossunder(close,smma) and time_cond

length=input(14, title="ATR Length")
mult=input(1.0, title="Percentage Multiplier (for ex., 0.7 = 70%)", step=0.1, minval=0.1, maxval=5.0)

oa=input(false, title="Show actual ATR")

ii=syminfo.pointvalue==0
s=ii?na:oa?atr(length):(syminfo.pointvalue * mult * atr(length))

tp=input(300,title="tp")
sl=input(300,title="sl")


//tp = s*10000
//sl= s*10000



//if(tp>300)
//    tp:=300
//if(sl>300)
//    sl:=300
//if(sl<150)
//    sl:=150
//if(tp<150)
//    tp:=150
strategy.initial_capital = 50000
//MONEY MANAGEMENT--------------------------------------------------------------''
balance = strategy.netprofit + strategy.initial_capital //current balance
floating = strategy.openprofit          //floating profit/loss
risk = input(3,type=input.float,title="Risk %")/100           //risk % per trade


    //Calculate the size of the next trade
temp01 = balance * risk     //Risk in USD
temp02 = temp01/sl        //Risk in lots
temp03 = temp02*100000      //Convert to contracts
size = temp03 - temp03%1000 //Normalize to 1000s (Trade size)
if(size < 10000)
    size := 10000           //Set min. lot size



strategy.entry("long",1,when=longCond )
strategy.exit("closelong","long", profit=tp,loss=sl)
//strategy.close("long",when= crossunder(close[4],smma4) and close[4] > close[3] and close[3]>close[2] and close[2] > close[1] and close[1] > close)
strategy.entry("short",0,when=shortCond )
strategy.exit("closeshort","short", profit=tp,loss=sl)
//strategy.close("short",when= crossover(close[4],smma4) and close[4] < close[3] and close[3]< close[2] and close[2] < close[1] and close[1] < close)

strategy.close_all(when = not london)

maxEntry=input(2,title="max entries")
// strategy.risk.max_intraday_filled_orders(maxEntry)

مزید