یہ حکمت عملی ای ایم اے اور جمع شدہ حجم اشارے کے ساتھ مل کر ، دونوں کی کراسنگ کی بنیاد پر مارکیٹ کے رجحانات کا تعین کرتی ہے ، خریدنے اور بیچنے کے سگنل پیدا کرتی ہے۔ یہ ایک عام رجحانات کی پیروی کرنے والی حکمت عملی ہے ، جس میں طویل لائن کی سطح پر مارکیٹ کی سمت کی پیروی کی جاتی ہے۔
50 دن کے ای ایم اے کی اوسط لائن اور 100 دن کے مجموعی حجم کے اشارے کا حساب لگائیں۔ جب ای ایم اے نیچے سے اوپر کی طرف سے مجموعی حجم کو توڑتا ہے تو ، اس سے خریدنے کا اشارہ ہوتا ہے۔ جب ای ایم اے اوپر سے نیچے کی طرف سے مجموعی حجم کو توڑتا ہے تو ، اس سے فروخت کا اشارہ ہوتا ہے۔
پوزیشن رکھنے کے دوران ، فکسڈ اسٹاپ اور اسٹاپ سے باہر نکلنے کی حکمت عملی طے کریں۔ اسٹاپ نقصان داخلہ قیمت کے 8٪ سے نیچے طے کیا گیا ہے۔ اسٹاپ داخلہ قیمت کے 8٪ سے اوپر طے کیا گیا ہے ، اور جب قیمت اسٹاپ پوائنٹ تک پہنچ جاتی ہے تو پوزیشن کا ایک حصہ صاف کردیا جاتا ہے۔
یہ حکمت عملی رجحان اشارے ای ایم اے اور کیش فلو اشارے کے ساتھ مل کر تجارت کی مقدار کو جمع کرتی ہے ، قیمت اور تجارت کی مقدار کی معلومات کا بھرپور استعمال کرتی ہے ، جس سے درمیانی لمبی لائن کے رجحانات کو مؤثر طریقے سے پہچانا جاسکتا ہے۔ فکسڈ اسٹاپ نقصان کی حکمت عملی براہ راست موثر ہے ، جو منافع کے کچھ حصوں کو لاک کرنے اور خطرے پر قابو پانے میں مددگار ہے۔
مختلف اقسام کے مطابق ای ایم اے کی مدت کے پیرامیٹرز کو آزادانہ طور پر ایڈجسٹ کیا جاسکتا ہے۔ زیادہ سے زیادہ لیکویڈیشن ، لکیری تجارت کی اجازت دیتا ہے۔ رجحانات کے حالات میں ، حکمت عملی اچھی کارکردگی کا مظاہرہ کرتی ہے ، جیسا کہ بیک اپ ڈیٹا سے پتہ چلتا ہے۔
اس حکمت عملی پر بہت زیادہ انحصار کیا جاتا ہے ، اور اس میں زلزلے کے حالات میں غلط سگنل پیدا کرنے کا خطرہ ہوتا ہے۔ مقررہ اسٹاپ اسٹاپ نقصانات بھی بہت جلد باہر نکلنے یا بہت زیادہ نقصان کا سبب بن سکتے ہیں۔ صرف قیمت اور حجم کی معلومات پر غور کریں ، اور دوسرے عوامل پر غور نہ کریں۔
اوسط لائن پیرامیٹرز کو مناسب طریقے سے بڑھایا جاسکتا ہے ، اور غلط سگنل کو کم کیا جاسکتا ہے۔ اس کے علاوہ ، اتار چڑھاؤ کی شرح ، آر ایس آئی اور دیگر اشارے معاون فیصلے متعارف کرائے جاسکتے ہیں۔ اسٹاپ اسٹاپ نقصان کے طریقہ کار کو بہتر بنائیں ، جیسے ٹریکنگ اسٹاپ ، متحرک اسٹاپ وغیرہ۔
ای ایم اے پیرامیٹرز کے مجموعے کو بہتر بنانے کے لئے ٹیسٹ کریں ، بہترین پیرامیٹرز تلاش کریں۔
دوسرے تکنیکی اشارے متعارف کروائیں تاکہ انڈیکیٹرز کا مجموعہ حکمت عملی تشکیل دے سکے۔
ای ایم اے کو بہتر بنانے کے لئے قیمتوں کے رجحانات کی پیش گوئی کرنے کے لئے مشین لرننگ کا استعمال کریں۔
اسٹاپ اسٹاپ نقصان کی حکمت عملی کو بہتر بنانا ، جس میں اسٹاپ ٹریکنگ ، متحرک اسٹاپ اور دیگر میکانزم شامل ہیں۔
فنڈ مینجمنٹ ماڈیول متعارف کرایا، متحرک پوزیشنوں کو ایڈجسٹ کریں.
نسل کی خصوصیات کے مطابق پیرامیٹرز کو ایڈجسٹ کریں ، حکمت عملی کا مجموعہ بنائیں۔
اس حکمت عملی میں ای ایم اے اور ٹرانزیکشن حجم کے اشارے کو مربوط کیا گیا ہے تاکہ وسط اور لمبی لائن کے رجحانات کا اندازہ لگایا جاسکے۔ تاہم ، اوسط لائن اور فکسڈ اسٹاپ اسٹاپ پر زیادہ انحصار کرنا بھی ایک مسئلہ ہے۔ مزید اشارے کے فیصلے کو شامل کرنے اور اسٹاپ اسٹاپ نقصان کی حکمت عملی کو بہتر بنانے سے حکمت عملی کی استحکام اور منافع کی گنجائش میں اضافہ ہوسکتا ہے۔ مجموعی طور پر ، یہ قیمت اور ٹرانزیکشن حجم کی معلومات کو استعمال کرنے کے لئے رجحانات کی پیروی کرنے کا طریقہ فراہم کرتا ہے۔
/*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" ) )