متعدد موونگ ایوریج ٹریڈنگ کی حکمت عملی


تخلیق کی تاریخ: 2024-02-29 14:32:29 آخر میں ترمیم کریں: 2024-02-29 14:32:29
کاپی: 3 کلکس کی تعداد: 881
1
پر توجہ دیں
1617
پیروکار

متعدد موونگ ایوریج ٹریڈنگ کی حکمت عملی

جائزہ

اس حکمت عملی کا نام کثیر اوسط لائن ٹریڈنگ حکمت عملی ہے۔ یہ حکمت عملی MACD اشارے اور کثیر اوسط لائن کے کراس کو ٹریڈنگ سگنل کے طور پر استعمال کرتی ہے ، ZLSMA اشارے کے ساتھ مل کر رجحان کا معاون فیصلہ کرنے کے لئے ، اسٹاپ اسٹاپ نقصان سے باہر نکلنے کا منطق ترتیب دے کر ، خود کار طریقے سے تجارت کرنے کے لئے۔

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

  1. MACD اشارے کی فوری لائن ، سست لائن اور MACD کالم کا حساب لگائیں۔ گولڈ فورک کو زیادہ اور ڈیڈ فورک کو خالی کریں۔

  2. 5th ، 25th ، 45th ، اور 100th لائنوں کی چار اوسط لائنوں کا حساب لگائیں۔ اوسط لائن جتنی لمبی ہوگی ، رجحان کی مستقل مزاجی اتنی ہی مضبوط ہوگی۔

  3. اوسط لائنوں کے دو سیٹوں کے درمیان فاصلہ کا حساب لگائیں ، اگر فاصلہ کسی خاص حد سے زیادہ ہو تو ، اوسط لائنوں کے پھیلاؤ کی نشاندہی کرنے کے لئے ، اسے تجارتی سگنل کے طور پر ترتیب دیا جاسکتا ہے۔

  4. ZLSMA اشارے کا حساب لگائیں ، قیمتوں میں لمبی لمبی لکیری رجحان کی سمت کا اظہار کریں۔ ZLSMA جب موڑ کا نقطہ بنتا ہے تو رجحان کی تبدیلی کا فیصلہ کیا جاسکتا ہے۔

  5. MACD اشارے کے کراسنگ ، میڈین لائن پھیلاؤ سگنل اور ZLSMA رجحانات کے فیصلے کے ساتھ مل کر ، زیادہ فاصلے پر تجارت کی حکمت عملی طے کریں۔

  6. ایکسٹینٹنگ منطق کو خودکار کرنے کے لئے اسٹاپ اسٹاپ نقصان کی پوزیشن مرتب کریں۔

طاقت کا تجزیہ

  1. ایک سے زیادہ فلٹر سگنل حکمت عملی کی کارکردگی کو بہتر بناتے ہیں۔ MACD اشارے اور اوسط لکیری پھیلاؤ سگنل ایک دوسرے کی تصدیق کرسکتے ہیں ، تاکہ جھوٹی توڑ سے بچا جاسکے۔

  2. ZLSMA اشارے وسط اور طویل مدتی رجحان کی سمت کا تعین کرنے میں معاون ہیں ، اور اس سے متضاد تجارت سے بچنے میں مدد ملتی ہے۔

  3. آٹومیشن Exiting روک تھام کی روک تھام کے نقطہ کو مقرر کرتا ہے، انسانی مداخلت کی تعدد کو کم کرتا ہے.

خطرے کا تجزیہ

  1. پیرامیٹرز کی غلط ترتیب سے زیادہ تجارت یا ضائع ہونے کا سبب بن سکتا ہے۔ زیادہ سے زیادہ اثر حاصل کرنے کے لئے پیرامیٹرز کو بہتر بنانے کی ضرورت ہے۔

  2. فکسڈ اسٹاپ اسٹاپ نقصان کو محدود کرنے یا نقصان کو بڑھانے کے لئے استعمال کیا جاتا ہے۔ متحرک اسٹاپ نقصان کو اے ٹی آر اشارے کے ساتھ جوڑا جاسکتا ہے۔

  3. اوسط لائن کی حکمت عملی زلزلہ کی صورتحال پر زیادہ موثر نہیں ہے ، لہذا دوسرے اشارے یا انسانی مداخلت کو مدنظر رکھا جاسکتا ہے۔

اصلاح کی سمت

  1. اوسط لکیری پیرامیٹرز کے مجموعے کو بہتر بنائیں ، مختلف لمبائی کی اوسط لکیروں کے اثر کو جانچیں۔

  2. دوسرے اشارے جیسے کے ڈی جے ، بی او ایل ایل وغیرہ کے ساتھ ٹیسٹ خرید و فروخت کے مقامات کا تعین کرتا ہے۔

  3. متحرک اسٹاپ حکمت عملی کی کوشش کریں ، اتار چڑھاؤ کی شرح کے مطابق اسٹاپ پوزیشن ترتیب دیں۔

  4. مشین سیکھنے کے ماڈل میں شامل ہوں اور خود کار طریقے سے زیادہ سے زیادہ پیرامیٹرز تلاش کریں۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-02-22 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MACD ZLSMA_izumi⑤(4つの条件、MCDがクロスしてたら)", overlay=true)

fast_length = input(title = "Fast Length", defval = 12)
slow_length = input(title = "Slow Length", defval = 26)
src = input(title = "Source", defval = close)
signal_length = input.int(title = "Signal Smoothing",  minval = 1, maxval = 50, defval = 9)
sma_source = input.string(title = "Oscillator MA Type",  defval = "EMA", options = ["SMA", "EMA"])
sma_signal = input.string(title = "Signal Line MA Type", defval = "EMA", options = ["SMA", "EMA"])
// Calculating
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal

alertcondition(hist[1] >= 0 and hist < 0, title = 'Rising to falling', message = 'The MACD histogram switched from a rising to falling state')
alertcondition(hist[1] <= 0 and hist > 0, title = 'Falling to rising', message = 'The MACD histogram switched from a falling to rising state')

hline(0, "Zero Line", color = color.new(#787B86, 50))
plot(hist, title = "Histogram", style = plot.style_columns, color = (hist >= 0 ? (hist[1] < hist ? #26A69A : #B2DFDB) : (hist[1] < hist ? #FFCDD2 : #FF5252)))
plot(macd,   title = "MACD",   color = #2962FF)
plot(signal, title = "Signal", color = #FF6D00)

//MACDクロス設定
enterLong = ta.crossover(macd, signal)
enterShort = ta.crossunder(macd, signal)

//移動平均線の期間を設定
ema5 = input(5, title="ma期間5")
ema25 = input(25, title="ma期間25")
ema45 = input(45, title="ma期間45")
ema100 = input(100, title="ma期間100")

//移動平均線を計算
//sma関数で「ema25」バー分のcloseを移動平均線として「Kema」に設定
Kema5 = ta.sma(close,ema5)
Kema25 = ta.sma(close,ema25)
Kema45 = ta.sma(close,ema45)
Kema100 = ta.sma(close,ema100)



//移動平均線をプロット
plot(Kema5, color=color.rgb(82, 249, 255),title="ema5")
plot(Kema25, color=color.red,title="ema25")
plot(Kema45, color=color.blue,title="ema45")
plot(Kema100, color=color.green,title="ema100")

//ema同士の距離が30以上の時に「distancOK」にTureを返す
//distance1 = math.abs(Kema5-Kema25)
distance2 = math.abs(Kema25-Kema45)
distanceValue1 = input(0.030, title ="ema同士の乖離値") 
//distanceOk1 = distance1 > distanceValue1
distanceOk2 = distance2 > distanceValue1

//2区間のema同士の距離が30以上の時に「distanceOKK」にTrueを返す
//distanceOkK1 = distanceOk1 and distanceOk2
distanceOkK1 = distanceOk2

//5EMAとロウソクの乖離判定
//DistanceValue5ema = input(0.03, title ="5emaとロウソクの乖離率")
//emaDistance = math.abs(Kema5 - close)
//emaDistance5ema = emaDistance < DistanceValue5ema

//ZLSMA追加のコード
length = input.int(32, title="Length")
offset = input.int(0, title="offset")
src2 = input(close, title="Source")
lsma = ta.linreg(src2, length, offset)
lsma2 = ta.linreg(lsma, length, offset)
eq= lsma-lsma2
zlsma = lsma+eq
//ZLSMAのプロット
plot(zlsma, color=color.yellow, linewidth=3)

//ZLSMAの前回高値を検索
//var float zlsmaHigh = na
//var float zlsmaHighValue = na
//if ta.highest(zlsma,35) == zlsma[3]
//    zlsmaHighValue := zlsmaHigh
//    zlsmaHigh := zlsma[3]

//if (na(zlsmaHighValue))
 //   zlsmaHighValue := zlsmaHigh

//ZLSMAの前回安値を検索
//var float zlsmaLow = na
//var float zlsmaLowValue = na
//if ta.lowest(zlsma,35) == zlsma[3]
//    zlsmaLowValue := zlsmaLow
//    zlsmaLow := zlsma[3]

///if (na(zlsmaLowValue))
//    zlsmaLowValue := zlsmaLow

//利確・損切りポイントの初期化(変数の初期化)
var longProfit = 0.0
var longStop = 0.0
var shortProfit = 0.0
var shortStop = 0.0

//inputで設定画面の選択項目を設定
longProfitValue = input(0.06, title ="ロング利確pips")
shortProfitValue = input(-0.06, title ="ショート利確pips")
longStopValue = input(-0.06, title ="ロング損切pips")
shortStopValue = input(0.06, title ="ショート損切pips")

// クロスの強さを推定 
//angleThreshold = input(0.001, title = "クロスの強さ調節" )

// クロスの強さの閾値、この値を調整してクロスの強さの基準を変える 
//macdDiff = macdLine - signalLine 
//strongCross = math.abs(macdDiff) > angleThreshold 

// エントリー条件 (MACDラインとシグナルラインがクロス)
//ta.crossover(macdLine, signalLine) and strongCross 


//ロングエントリー条件
if  distanceOkK1 and enterLong
	strategy.entry("long", strategy.long, comment="long")
    longProfit := close + longProfitValue
    longStop := close + longStopValue

//    if na(strategy.position_avg_price) and close>strategy.position_avg_price + 0.05 * syminfo.mintick 
 //       longStop := strategy.position_avg_price + 10 * syminfo.mintick
  //  strategy.exit("exit", "long",stop = longStop)

strategy.exit("exit", "long", limit = longProfit,stop = longStop)


if  distanceOkK1 and enterShort
	strategy.entry("short", strategy.short, comment="short")
    shortProfit := close + shortProfitValue
    shortStop := close + shortStopValue

 //   if na(strategy.position_avg_price) and close>strategy.position_avg_price - 0.05 * syminfo.mintick 
  //      shortStop := strategy.position_avg_price - 0.1 * syminfo.mintick
  //  strategy.exit("exit", "long",stop = longStop)


strategy.exit("exit", "short", limit = shortProfit,stop = shortStop)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)