EMA اور مجموعی حجم پر مبنی طویل اور مختصر تجارتی حکمت عملی


تخلیق کی تاریخ: 2023-09-20 11:48:34 آخر میں ترمیم کریں: 2023-09-20 11:48:34
کاپی: 0 کلکس کی تعداد: 793
1
پر توجہ دیں
1617
پیروکار

جائزہ

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

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

50 دن کے ای ایم اے کی اوسط لائن اور 100 دن کے مجموعی حجم کے اشارے کا حساب لگائیں۔ جب ای ایم اے نیچے سے اوپر کی طرف سے مجموعی حجم کو توڑتا ہے تو ، اس سے خریدنے کا اشارہ ہوتا ہے۔ جب ای ایم اے اوپر سے نیچے کی طرف سے مجموعی حجم کو توڑتا ہے تو ، اس سے فروخت کا اشارہ ہوتا ہے۔

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

طاقت کا تجزیہ

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

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

خطرے کا تجزیہ

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

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

اصلاح کی سمت

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

  2. دوسرے تکنیکی اشارے متعارف کروائیں تاکہ انڈیکیٹرز کا مجموعہ حکمت عملی تشکیل دے سکے۔

  3. ای ایم اے کو بہتر بنانے کے لئے قیمتوں کے رجحانات کی پیش گوئی کرنے کے لئے مشین لرننگ کا استعمال کریں۔

  4. اسٹاپ اسٹاپ نقصان کی حکمت عملی کو بہتر بنانا ، جس میں اسٹاپ ٹریکنگ ، متحرک اسٹاپ اور دیگر میکانزم شامل ہیں۔

  5. فنڈ مینجمنٹ ماڈیول متعارف کرایا، متحرک پوزیشنوں کو ایڈجسٹ کریں.

  6. نسل کی خصوصیات کے مطابق پیرامیٹرز کو ایڈجسٹ کریں ، حکمت عملی کا مجموعہ بنائیں۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 2h
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/
// © mohanee

//@version=4
strategy("EMA_cumulativeVolume_crossover[Strategy]", overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity,  default_qty_value=20, initial_capital=10000)


emaLength= input(50, title="EMA Length", minval=1, maxval=200)
cumulativePeriod = input(100,  title="cumulative volume Period", minval=1, maxval=200)


riskCapital = input(title="Risk % of capital", defval=10, minval=1)
stopLoss=input(8,title="Stop Loss",minval=1)
takePartialProfits=input(false, title="take partial profits  (percentage same as stop loss)")

tradeDirection=input(title="Trade Direction", defval="LONG", options=["LONG", "SHORT"])

avgPrice = (high + low + close) / 3
avgPriceVolume = avgPrice * volume

cumulPriceVolume = sum(avgPriceVolume, cumulativePeriod)
cumulVolume = sum(volume, cumulativePeriod)

vwapValue = cumulPriceVolume / cumulVolume

emaVal=ema(close, emaLength)

plot(emaVal, title="EMA", color=color.green,  transp=25)
plot(vwapValue, title="Cumulate Volumne / VWAP", color=color.orange,  linewidth=2, transp=25)

bgcolor(emaVal>vwapValue?color.blue:color.purple)    

//Entry--
//Echeck how many units can be purchased based on risk manage ment and stop loss
qty1 = (strategy.equity  * riskCapital / 100 ) /  (close*stopLoss/100)  

//check if cash is sufficient  to buy qty1  , if capital not available use the available capital only
qty1:= (qty1 * close >= strategy.equity ) ? (strategy.equity / close) : qty1

strategy.entry(id="LE",comment="LE", long=true, qty=qty1, when=crossover(emaVal, vwapValue)  and (tradeDirection=="LONG") )    //emaVal>vwapValue and crossover(close , emaVal)

//stoploss
stopLossVal=  strategy.position_size>=1 ?  (strategy.position_avg_price * (1-(stopLoss*0.01) )) : 0.00

//draw initil stop loss
plot(strategy.position_size>=1 ? stopLossVal : na, color = color.purple , style=plot.style_linebr,  linewidth = 2, title = "stop loss")

//partial exits
takeProfit=  strategy.position_size>=1 ?  (strategy.position_avg_price * (1+(stopLoss*0.01) )) : ( close[1] * 2 )
if(takePartialProfits==true)
    strategy.close(id="LE", comment="Partial"+tostring(close-strategy.position_avg_price, "###.##") , qty=strategy.position_size/3 , when = (tradeDirection=="LONG" ) and close>takeProfit and crossunder(close, emaVal) )    //close<close[1] and close[1]<close[2] and close[2]<close[3])
    
strategy.close(id="LE" , comment="LE Exit Points="+tostring(close-strategy.position_avg_price, "###.##"), when=crossunder(emaVal, vwapValue) and (tradeDirection=="LONG") )

strategy.close(id="LE" , comment="SL Exit Loss="+tostring(close-strategy.position_avg_price, "###.##"), when= close < stopLossVal   and (tradeDirection=="LONG") )


//for short  you dont have to wait crossodown of ema, falling is speed , so just check if close crossing down vwapVal
strategy.entry(id="SE",comment="SE", long=false, qty=qty1, when=(close<vwapValue and close<open  and close[1] < vwapValue  and close[1]<open[1] and close<close[1])  and emaVal>=vwapValue and (tradeDirection=="SHORT") )    //emaVal>vwapValue and crossover(close , emaVal)

//stoploss
stopLossValUpside=  abs(strategy.position_size)>=1 and tradeDirection=="SHORT" ?  (strategy.position_avg_price * (1+(stopLoss*0.01) )) : 0.00

//draw initil stop loss
plot(abs(strategy.position_size)>=1 and tradeDirection=="SHORT" ? stopLossValUpside : na, color = color.purple , style=plot.style_linebr,  linewidth = 2, title = "stop loss")

//partial exits
shortTakeProfit=  abs(strategy.position_size)>=1 and tradeDirection=="SHORT" ?  (strategy.position_avg_price * (1-(stopLoss*0.01) )) : 0.00
if(takePartialProfits==true)
    strategy.close(id="SE", comment="Partial" , qty=strategy.position_size/3 , when = (tradeDirection=="SHORT"   ) and  close<shortTakeProfit )  //close<takeProfit and (emaVal - close)>8 )
  
//strategy.close(id="SE" , comment="SE Exit Points="+tostring(close-strategy.position_avg_price, "###.##"), when=crossover(emaVal, vwapValue) and (tradeDirection=="SHORT") )
strategy.close(id="SE" , comment="SE Exit Points="+tostring(close-strategy.position_avg_price, "###.##"), when= abs(strategy.position_size)>=1 and ( (emaVal<vwapValue and close>vwapValue and open>vwapValue and close>open )   or (crossover(emaVal,vwapValue))  ) and (tradeDirection=="SHORT") )

strategy.close(id="SE" , comment="SL Exit Loss="+tostring(close-strategy.position_avg_price, "###.##"), when= abs(strategy.position_size)>=1 and  close > stopLossValUpside   and (tradeDirection=="SHORT"   ) )