وسائل لوڈ ہو رہے ہیں... لوڈنگ...

حجم-قیمت کی رفتار ٹریڈنگ کی حکمت عملی کے ساتھ ملٹی ای ایم اے کراس

مصنف:چاؤ ژانگ، تاریخ: 2025-01-06 16:07:59
ٹیگز:ای ایم اےوی ڈبلیو اے پیایس ایم اےایس ایل اوآر ایس آئیHLC3ایم او ایل

img

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

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

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

حکمت عملی کے فوائد

  1. متعدد تکنیکی اشارے تجارتی سگنل کی وشوسنییتا کو بڑھا دیتے ہیں
  2. مختلف تجارتی دنوں کے لئے مختلف اندراج کی شرائط جو مارکیٹ کی خصوصیات کے مطابق بہتر ہیں
  3. متحرک منافع لینے اور سٹاپ نقصان کے طریقہ کار مؤثر طریقے سے خطرے کو کنٹرول کرتے ہیں
  4. دن کے اندر ٹریڈنگ ونڈو کی پابندیاں اعلی اتار چڑھاؤ کے ادوار سے بچتی ہیں
  5. پچھلے اعلی کم پوائنٹس اور قیمت کی نقل و حرکت کی رکاوٹوں نے اعلی اور کم کے پیچھے چلنے کے خطرے کو کم کیا

حکمت عملی کے خطرات

  1. تیزی سے اتار چڑھاؤ والے بازاروں میں غلط سگنل آسکتے ہیں
  2. ابتدائی رجحان کی تبدیلی کے دوران ممکنہ تاخیر
  3. پیرامیٹر کی اصلاح سے زیادہ فٹنگ کے خطرات کا سامنا ہوسکتا ہے
  4. تجارتی اخراجات حکمت عملی کی واپسی کو متاثر کرسکتے ہیں
  5. مارکیٹ میں انتہائی اتار چڑھاؤ کے دوران ممکنہ طور پر اہم ڈرائنگ

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

  1. رجحان کی طاقت کی مزید تصدیق کے لئے حجم تجزیہ کے اشارے شامل کرنے پر غور کریں
  2. حکمت عملی کی موافقت کو بہتر بنانے کے لئے مختلف تجارتی دنوں کے لئے پیرامیٹرز کو بہتر بنائیں
  3. پیش گوئی کی درستگی کو بڑھانے کے لئے مزید مارکیٹ کے جذبات کے اشارے شامل کریں
  4. سرمایہ کاری کی کارکردگی کو بہتر بنانے کے لئے منافع اور سٹاپ نقصان کے طریقہ کار کو بہتر بنائیں
  5. پوزیشن مینجمنٹ کو بہتر بنانے کے لئے اتار چڑھاؤ کے اشارے شامل کرنے پر غور کریں

خلاصہ

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


/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
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/
//@version=6
strategy("S1", overlay=true)
fastEMA = ta.ema(close, 5)
slowEMA = ta.ema(close,13)
ema9 = ta.ema(close, 9)
ema100 = ta.ema(close, 100)
ema5 = ta.ema(close, 5)
ema200 = ta.ema(close, 200)

ma = ta.sma(close, 50)

mult = input.float(defval=3)
len = input.int(defval=11)
[superTrend, dir] = ta.supertrend(mult, len)
vwap1= ta.vwap(hlc3)

plot(slowEMA,color = color.green)
plot(fastEMA,color = color.black)
plot(vwap1, color = color.blue)

var dailyTaskDone = false
var gapdown = false
var gapup = false
var runup = 0.0
var biggapdown = false
var biggapup = false
var prevDayClose = 0.0
var todayLow = 0.0
var todayHigh = 0.0
var noBuyNow = false
var noSellNow = false
var buyPrice = 0.0
var sellPrice = 0.0
var todayBuyDone = false
var todaySellDone = false
var dragonflyDoji = false
var candleCount = 0
var candleCount1 = 0
var lastTrade = 9
var lastFiveCandles = false
var lastSevenCandlesS = false
var fiveEMACC = 0
candleCount := candleCount + 1
candleCount1 := candleCount1 + 1

if fiveEMACC > 0
    fiveEMACC := fiveEMACC + 1

if fiveEMACC == 6
    fiveEMACC := 0

if strategy.openprofit == 0
    candleCount := 0

if hour == 9 and minute ==15
    prevDayClose := close[1]
    todayLow := low
    todayHigh := high
    lastTrade := 9
    
if hour == 9 and minute ==15 and (open - close[1]) >  close*0.01
    gapup := true
    
if hour == 9 and minute ==15 and (open - close[1]) <  close*0.005*-1
    gapdown := true

if hour == 9 and minute ==15 and (close - close[1]) > 200
    biggapup := true
    
if hour == 9 and minute ==15 and (close - close[1]) < 200
    biggapdown := true

if low < todayLow
    todayLow := low
    candleCount1 := 0
if high > todayHigh
    todayHigh := high

if close > todayLow + 200
    noBuyNow := true
    
if close < todayHigh - 200//0.01*close
    noSellNow := false

lastFiveCandles := (close[4]<open[4] or close[3]<open[3] or close[2] < open[2] or close[1]<open[1])
lastSevenCandlesS := (close[6]>open[6] or close[5]>open[5] or close[4]>open[4] or close[3]>open[3] or close[2] > open[2] or close[1]>open[1])
if hour == 15
    dailyTaskDone := false
    gapdown := false
    gapup := false
    biggapup := false
    biggapdown := false
    noBuyNow := false
    noSellNow := false
    todayLow := 0.0
    todayHigh := 0.0
    buyPrice  := 0.0
    sellPrice := 0.0
    todayBuyDone := false
    todaySellDone := false
    dragonflyDoji := false
    lastTrade := 9

// if fastEMA < slowEMA and lastTrade == 1 and strategy.openprofit==0
//     lastTrade := 9


if fastEMA > slowEMA and lastTrade == 0 and strategy.openprofit==0
    lastTrade := 9
    
buy =  (dayofweek==dayofweek.thursday and (fastEMA - slowEMA > close*0.001) and close > vwap1 and close[1] > vwap1[1]) or 
       (dayofweek==dayofweek.monday and (fastEMA - slowEMA > close*0.001) and close > vwap1 and close[1] > vwap1[1] and close-prevDayClose < close*0.011) or 
       (dayofweek==dayofweek.tuesday and (fastEMA - slowEMA > close*0.001) and close > vwap1 and close[1] > vwap1[1] and lastFiveCandles  and close-prevDayClose < close*0.015 and close-todayLow < close*0.012) or
       (dayofweek==dayofweek.wednesday and (fastEMA - slowEMA > close*0.001) and close > vwap1 and close-prevDayClose < close*0.015 and (hour!=9 or minute>=35) and close-todayLow < close*0.012) or
       (dayofweek==dayofweek.friday and ((fastEMA - slowEMA > close*0.001))and close > vwap1 and close[1] > vwap1[1] and (hour!=9 or minute>=35))
       
sell=  (dayofweek==dayofweek.thursday and (hour!=9 or minute>=35) and ((slowEMA - fastEMA > close*0.00089)) and close < vwap1  and lastSevenCandlesS and close[1] < vwap1[1]) or 
       (dayofweek==dayofweek.monday and ((slowEMA - fastEMA > close*0.00089)) and close < vwap1 and close[1] < vwap1[1] and not dragonflyDoji and todayHigh-close < close*0.008 and todayHigh-close[1] < close * 0.01 ) or 
       (dayofweek==dayofweek.tuesday and  (hour!=9 or minute>=35) and (open - low < 2*(high-close)) and (close-open<10)  and not dragonflyDoji  and (slowEMA - fastEMA > close*0.00089) and close < vwap1 and close[1] < vwap1[1]  and prevDayClose-close<close*0.012 and todayHigh-close < close*0.009 and todayHigh-close[1] < close * 0.009) or
       (dayofweek==dayofweek.wednesday  and  (hour!=9 or minute>=40) and close<open and (slowEMA - fastEMA > close*0.00089) and close < vwap1 and close[1] < vwap1[1] and not dragonflyDoji and (close-todayLow>30 or candleCount1<1) ) or 
       (dayofweek==dayofweek.friday and ((slowEMA - fastEMA > close*0.00089)) and close < vwap1 and close[1] < vwap1[1] and not dragonflyDoji and (hour!=9 or minute>=55) ) 

// buy =  (dayofweek==dayofweek.thursday and (fastEMA > slowEMA) and close > vwap1 and close[1] > vwap1[1]) or 
//        (dayofweek==dayofweek.monday and (fastEMA > slowEMA) and close > vwap1 and close[1] > vwap1[1] and close-prevDayClose < close*0.011) or 
//        (dayofweek==dayofweek.tuesday and (fastEMA > slowEMA) and close > vwap1 and close[1] > vwap1[1] and lastFiveCandles  and close-prevDayClose < close*0.015 and close-todayLow < close*0.012) or
//        (dayofweek==dayofweek.wednesday and (fastEMA > slowEMA) and close > vwap1 and close-prevDayClose < close*0.015 and (hour!=9 or minute>=35) and close-todayLow < close*0.012) or
//        (dayofweek==dayofweek.friday and ((fastEMA > slowEMA))and close > vwap1 and close[1] > vwap1[1] and (hour!=9 or minute>=35))
       
// sell=  (dayofweek==dayofweek.thursday and (hour!=9 or minute>=35) and ((slowEMA > fastEMA)) and close < vwap1  and lastSevenCandlesS and close[1] < vwap1[1]) or 
//        (dayofweek==dayofweek.monday and ((slowEMA > fastEMA)) and close < vwap1 and close[1] < vwap1[1] and not dragonflyDoji and todayHigh-close < close*0.008 and todayHigh-close[1] < close * 0.01 ) or 
//        (dayofweek==dayofweek.tuesday and  (hour!=9 or minute>=35) and (open - low < 2*(high-close)) and (close-open<10)  and not dragonflyDoji  and (slowEMA > fastEMA) and close < vwap1 and close[1] < vwap1[1]  and prevDayClose-close<close*0.012 and todayHigh-close < close*0.009 and todayHigh-close[1] < close * 0.009) or
//        (dayofweek==dayofweek.wednesday  and  (hour!=9 or minute>=40) and close<open and (slowEMA > fastEMA) and close < vwap1 and close[1] < vwap1[1] and not dragonflyDoji and (close-todayLow>30 or candleCount1<1) ) or 
//        (dayofweek==dayofweek.friday and ((slowEMA > fastEMA)) and close < vwap1 and close[1] < vwap1[1] and not dragonflyDoji and (hour!=9 or minute>=55) ) 

dragonflyDoji:= false

// (slowEMA - fastEMA > close*0.00089 or (slowEMA-fastEMA>close*0.00049 and (high[2]>vwap or high[1]>vwap)))
if sellPrice != 0 and runup < sellPrice - low
    runup := sellPrice - low


if buyPrice != 0 and runup < high - buyPrice
    //ourlabel = label.new(x=bar_index, y=na, text=tostring(runup), yloc=yloc.belowbar)
    runup := high - buyPrice
    
        
NoBuySellTime = (hour == 15) or ((hour==14 and minute>=25)) or (hour==9 and minute<=35) or hour >= 14
//(fiveEMACC > 0 and low < fastEMA and close < vwap1)
buyexit     =  fastEMA<slowEMA or (close<superTrend and close < vwap1 and close[1] < vwap1[1]) //or strategy.openprofit > 400 or strategy.openprofit < -5000
sellexit =  slowEMA<fastEMA or (close > vwap1 and close[1] > vwap1[1] and close>superTrend) //or strategy.openprofit > 400 or strategy.openprofit < -5000

exitPosition =  (dayofweek==dayofweek.thursday and buyPrice!=0.0 and (high - buyPrice) > 50) or (dayofweek==dayofweek.thursday and sellPrice!=0.0 and (sellPrice - low) > 80) or (dayofweek==dayofweek.monday and buyPrice !=0.0 and high-buyPrice > 30) or (dayofweek==dayofweek.monday and sellPrice!=0.0 and (sellPrice - low) > 30) or (dayofweek!=dayofweek.thursday and dayofweek!=dayofweek.monday  and buyPrice!=0.0 and (high - buyPrice) > 30) or  (dayofweek!=dayofweek.thursday  and dayofweek!=dayofweek.monday and sellPrice!=0.0 and (sellPrice - low) > 30)
//code such that 2 fastema is > than 2 slowema
//exitPosition =  (sellPrice!=0 and runup >21 and strategy.openprofit < -2000) or (candleCount > 18 and strategy.openprofit > 50 and strategy.openprofit < 1000) or (dayofweek==dayofweek.thursday and buyPrice!=0.0 and (high - buyPrice) > buyPrice * 0.007) or (dayofweek==dayofweek.thursday and sellPrice!=0.0 and (sellPrice - low) > sellPrice * 0.007) or (dayofweek==dayofweek.monday and buyPrice !=0.0 and high-buyPrice > 30) or (dayofweek!=dayofweek.thursday and dayofweek!=dayofweek.monday  and buyPrice!=0.0 and (high - buyPrice) > buyPrice * 0.002) or  (dayofweek!=dayofweek.thursday  and sellPrice!=0.0 and (sellPrice - low) > sellPrice * 0.002)
//(runup >21 and strategy.openprofit < -2000) or
if  buy and fastEMA>vwap1 and (not todayBuyDone or lastTrade != 1) and not NoBuySellTime// and not dailyTaskDone //and (dayofweek==dayofweek.friday or (close-prevDayClose)<150)//and not biggapup
    strategy.entry("buy", strategy.long)
    //dailyTaskDone := true
    if buyPrice == 0.0 
        fiveEMACC := 1

    buyPrice := close
    //ourlabel = label.new(x=bar_index, y=na, text=tostring(todayLow + 500), yloc=yloc.belowbar9
    todayBuyDone := true
    lastTrade := 1
    runup := 0.0

if  sell and (not todaySellDone or lastTrade != 0) and not NoBuySellTime// and not dailyTaskDone // and dayofweek!=dayofweek.friday //and (dayofweek==dayofweek.friday or (prevDayClose-close)<150)//and not biggapdown
    strategy.entry("sell", strategy.short)
    //dailyTaskDone := true
    if sellPrice == 0.0 
        fiveEMACC := 1
    sellPrice := close
    todaySellDone := true
    lastTrade := 0
    runup := 0.0

// if ((fastEMA-slowEMA>18 and close>vwap and close[1]>vwap[1] and (not todayBuyDone or candleCount>12)) or (slowEMA-fastEMA>10 and close < vwap and close[1]<vwap[1] and (not todaySellDone or candleCount > 12))) and strategy.openprofit==0
// ourlabel = label.new(x=bar_index, y=na, text=tostring(abs(prevDayClose-close)), yloc=yloc.belowbar)
    
IntraDay_SquareOff = minute >=15 and hour >= 15
if true and (IntraDay_SquareOff or exitPosition)
    strategy.close("buy")
    strategy.close("sell")
    buyPrice := 0
    sellPrice := 0
    runup := 0.0
if  buyexit
    strategy.close("buy")
    buyPrice := 0
if sellexit
    strategy.close("sell")
    sellPrice := 0

buy1 =  ((dayofweek==dayofweek.thursday and (fastEMA - slowEMA > close*0.001) and close > vwap1 and close[1] > vwap1[1]) or 
       (dayofweek==dayofweek.monday and (fastEMA - slowEMA > close*0.0013) and close > vwap1 and close[1] > vwap1[1]) or 
       (dayofweek==dayofweek.tuesday and (fastEMA - slowEMA > close*0.0013) and close > vwap1 and close[1] > vwap1[1] and not gapup) or
       (dayofweek==dayofweek.wednesday and (fastEMA - slowEMA > close*0.0013) and close > vwap1 and close[1] > vwap1[1] and close-prevDayClose < close*0.0085) or
       (dayofweek==dayofweek.friday and (fastEMA - slowEMA > close*0.0013) and close > vwap1 and close[1] > vwap1[1] and close - todayLow < close*0.012))
       and dayofweek!=dayofweek.friday and (not todayBuyDone or lastTrade != 1) and not NoBuySellTime// and not dailyTaskDone //and (dayofweek==dayofweek.friday or (close-prevDayClose)<150)//and not biggapup


       
sell1=  ((dayofweek==dayofweek.thursday and (slowEMA - fastEMA > close*0.00079) and close < vwap1 and close[1] < vwap1[1]) or 
       (dayofweek==dayofweek.monday and (slowEMA - fastEMA > close*0.00079) and close < vwap1 and close[1] < vwap1[1] and not dragonflyDoji and todayHigh-close < close*0.01 and todayHigh-close[1] < close * 0.01) or 
       (dayofweek==dayofweek.tuesday and (slowEMA - fastEMA > close*0.00079) and close < vwap1 and close[1] < vwap1[1] and not gapdown and not dragonflyDoji and todayHigh-close < close*0.009 and todayHigh-close[1] < close * 0.009) or
       (dayofweek==dayofweek.wednesday and (slowEMA - fastEMA > close*0.00079) and close < vwap1 and close[1] < vwap1[1] and not dragonflyDoji and prevDayClose-close < 0.005*close) or 
       (dayofweek==dayofweek.friday and (slowEMA - fastEMA > close*0.00079) and close < vwap1 and close[1] < vwap1[1] and not dragonflyDoji and prevDayClose-close < 0.005*close)) and 
       dayofweek!=dayofweek.friday and (not todaySellDone or lastTrade != 0) and not NoBuySellTime// and not dailyTaskDone
        
// if buy1 and strategy.openprofit==0
//     ourlabel = label.new(x=bar_index, y=na, text=tostring(fastEMA - slowEMA), yloc=yloc.belowbar)
// if sell1 and strategy.openprofit==0
//     ourlabel = label.new(x=bar_index, y=na, text=tostring(slowEMA - fastEMA), yloc=yloc.belowbar)

// buy =  ((fastEMA > slowEMA and fastEMA[1] < slowEMA[1]) and (fastEMA - slowEMA) > 10) or  ((fastEMA > slowEMA and fastEMA[1] > slowEMA[1] and fastEMA[2] < slowEMA[2]) and (fastEMA - slowEMA) > 20) 
// sell=  ((fastEMA < slowEMA and fastEMA[1] > slowEMA[1] ) and (slowEMA - fastEMA) > 10) or ((fastEMA < slowEMA and fastEMA[1] < slowEMA[1] and fastEMA[2] > slowEMA[2]) and (slowEMA - fastEMA) > 20)

// buy =  (fastEMA > slowEMA and fastEMA[1] < slowEMA[1]) 
// sell=  (fastEMA < slowEMA and fastEMA[1] > slowEMA[1] )


// buy =  ((fastEMA > slowEMA and fastEMA[1] < slowEMA[1]) and (fastEMA - slowEMA) > 10) or  ((fastEMA > slowEMA and fastEMA[1] > slowEMA[1] and fastEMA[2] < slowEMA[2]) and (fastEMA - slowEMA) > 1) 
// sell=  ((fastEMA < slowEMA and fastEMA[1] > slowEMA[1] ) and (slowEMA - fastEMA) > 5)


// buy =  fastEMA > slowEMA and fastEMA[1] > slowEMA[1] and fastEMA[2] < slowEMA[2]
// sell=  fastEMA < slowEMA and fastEMA[1] < slowEMA[1] and fastEMA[2] > slowEMA[2]

//Daily chart
// buyexit = (close + 40 < slowEMA)//rsi > 65 and fastEMA > ema9 // fastEMA > ema9// close < fastEMA//(rsi > 65 and close < fastEMA and fastEMA > ema3 and close > ema200)  //strategy.openprofit < -10000 and slowEMA > ema3 and slowEMA[1] < ema3[1] and 1==2
// sellexit = (close - 40  > slowEMA)//rsi < 35 // and close > ema200) or (rsi < 35 and close < ema200 and fastEMA < ema3) //strategy.openprofit < -10000 and fastEMA < ema3 and fastEMA[1] > ema3[1] and 1==2


// buyexit = (close < superTrend)// and (close < vwap1 and close[1] < vwap1[1] and close < close[1])//and close[2] < vwap1[2]//rsi > 65 and close < fastEMA// fastEMA > ema9// close < fastEMA//(rsi > 65 and close < fastEMA and fastEMA > ema3 and close > ema200)  //strategy.openprofit < -10000 and slowEMA > ema3 and slowEMA[1] < ema3[1] and 1==2
// sellexit = (close > superTrend)// and (close > vwap1 and close[1] > vwap1[1] and close > close[1]) //and close[2] > vwap1[2]//rsi < 35// and close > ema200) or (rsi < 35 and close < ema200 and fastEMA < ema3) //strategy.openprofit < -10000 and fastEMA < ema3 and fastEMA[1] > ema3[1] and 1==2

// buyexit = (close < superTrend and close < vwap1 and close[1] < vwap1[1] and close[1] < superTrend[1]) //or strategy.openprofit > 400 or strategy.openprofit < -5000
// sellexit =  (close > superTrend and close > vwap1 and close[1] > vwap1[1] and close[1] > superTrend[1]) //or strategy.openprofit > 400 or strategy.openprofit < -5000



متعلقہ

مزید