EMA پر مبنی تجارتی حکمت عملی


تخلیق کی تاریخ: 2023-11-24 15:46:48 آخر میں ترمیم کریں: 2023-11-24 15:46:48
کاپی: 0 کلکس کی تعداد: 1288
1
پر توجہ دیں
1617
پیروکار

EMA پر مبنی تجارتی حکمت عملی

جائزہ

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

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

  1. 3 EMA اوسط لائنوں کو تیز لائن ((8 سائیکل) ، درمیانی لائن ((14 سائیکل) ، اور سست لائن ((16 سائیکل) کے طور پر ترتیب دیں ، پھر فلٹر کے طور پر 1 لمبی سائیکل ((100 سائیکل) EMA اوسط لائن شامل کریں۔

  2. تیز، درمیانی اور سست 3 اوسط لائنوں کی ترتیب اور فلٹر کے ساتھ کراسنگ کا فیصلہ کرنے کے لئے، اضافی اور خالی وقت کا تعین کرنے کے لئے:

  • تیز لائن پر درمیانی لائن یا درمیانی لائن پر سست لائن پر ، متعدد سگنل کرنے کا فیصلہ کریں

  • مرکزی لائن کے نیچے شارٹ لائن کو پار کرتے وقت ، اسے پینیڈو سگنل سمجھا جاتا ہے

  • تیز لائن کے نیچے درمیانی لائن یا درمیانی لائن کے نیچے سست لائن کو خالی کرنے کا اشارہ سمجھا جاتا ہے

  • وسط لائن پر شارٹ لائن پار کرتے وقت ، اسے خالی جگہ کا اشارہ سمجھا جاتا ہے

  1. تیز اور سست 3 اوسط لائنوں کے تسلسل کے ذریعے رجحان کی سمت اور طاقت کا فیصلہ کریں ، جس میں اوسط لائنوں اور فلٹرز کے کراس فیصلے کے الٹ پوائنٹس کے ساتھ مل کر ، رجحان کی پیروی اور الٹ کی گرفتاری کا نامیاتی امتزاج حاصل کریں۔

طاقت کا تجزیہ

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

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

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

خطرے کا تجزیہ

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

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

اسٹریٹجک استحکام کو مزید بہتر بنانے اور خطرات کو کنٹرول کرنے کے لئے پیرامیٹرز کو بہتر بنانے ، اسٹاپ نقصان کی سطح مقرر کرنے اور محتاط آپریشن کرنے کی تجویز ہے۔

اصلاح کی سمت

اس حکمت عملی کے اہم نکات میں شامل ہیں:

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

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-01-01 00:00:00
end: 2023-11-23 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/
// © maxits

// 4HS Crypto Market Strategy
// This strategy uses 4 ema to get Long or Short Signals
// Length are: 8, 14, 16, 100
// We take long positions when the order of the emas is the following:
// green > yellow > red (As the color of Traffic Lights) and they are above white ema (Used as a filter for long positions)
  
// We take short positions when the order of the emas is the following:
// green < yellow < red (As the color of inverse Traffic Lights) and they are below white ema (Used as a filter for short positions)

//@version=4
strategy(title="Trafic Lights Strategy",
         shorttitle="TLS",
         overlay=true,
         initial_capital=1000,
         default_qty_value=20,
         default_qty_type=strategy.percent_of_equity,
         commission_value=0.1,
         pyramiding=0
         )

// User Inputs
// i_time         = input(defval = timestamp("28 May 2017 13:30 +0000"), title = "Start Time", type = input.time) //Starting time for Backtesting

sep1           = input(title="============ System Conditions ============", type=input.bool, defval=false)

enable_Long    = input(true, title="Enable Long Positions")   // Enable long  Positions
enable_Short   = input(true, title="Enable Short Positions") // Enable short Positions

sep2           = input(title="============ Indicator Parameters ============", type=input.bool, defval=false)

f_length       = input(title="Fast EMA Length",   type=input.integer, defval=8,   minval=1) 
m_length       = input(title="Medium EMA Length", type=input.integer, defval=14,   minval=1) 
s_length       = input(title="Slow EMA Length",   type=input.integer, defval=16,  minval=1) 
filter_L       = input(title="EMA Filter",        type=input.integer, defval=100, minval=1) 
filterRes      = input(title="Filter Resolution", type=input.resolution, defval="D")        // ema Filter Time Frame

sep3           = input(title="============LONG Profit-Loss Parameters============", type=input.bool, defval=false)

e_Long_TP      = input(true, title="Enable a Profit Level?")
e_Long_SL      = input(false, title="Enable a S.Loss Level?")
e_Long_TS      = input(true, title="Enable a Trailing Stop?")           
long_TP_Input  = input(40.0,   title='Take Profit %',   type=input.float,   minval=0)/100
long_SL_Input  = input(1.0,   title='Stop Loss %',     type=input.float,   minval=0)/100 
atrLongMultip  = input(2.0,   title='ATR Multiplier',  type=input.float,   minval=0.1)   // Parameters to calculate Trailing Stop Loss
atrLongLength  = input(14,    title='ATR Length',      type=input.integer, minval=1)

sep4           = input(title="============SHORT Profit-Loss Parameters============", type=input.bool, defval=false)

e_Short_TP     = input(true, title="Enable a Profit Level?")
e_Short_SL     = input(false, title="Enable a S.Loss Level?")
e_Short_TS     = input(true, title="Enable a Trailing Stop?")
short_TP_Input = input(30.0,   title='Take Profit %',   type=input.float,   minval=0)/100
short_SL_Input = input(1.0,   title='Stop Loss %',     type=input.float,   minval=0)/100
atrShortMultip = input(2.0,   title='ATR Multiplier',  type=input.float,   minval=0.1)
atrShortLength = input(14,    title='ATR Length',      type=input.integer, minval=1)

// Indicators

fema   = ema(close, f_length)
mema   = ema(close, m_length)
sema   = ema(close, s_length)
filter = security(syminfo.tickerid, filterRes, ema(close, filter_L))

plot(fema,   title="Fast EMA",   color=color.new(color.green,  0))
plot(mema,   title="Medi EMA",   color=color.new(color.yellow, 0))
plot(sema,   title="Slow EMA",   color=color.new(color.red,    0))
plot(filter, title="EMA Filter", color=color.new(color.white,  0))

// Entry Conditions

longTrade  = strategy.position_size >  0
shortTrade = strategy.position_size <  0
notInTrade = strategy.position_size == 0
inTrade    = strategy.position_size != 0
priceEntry = strategy.position_avg_price

goLong  = fema > mema and mema > sema and fema > filter and  enable_Long  and (crossover (fema, mema) or crossover (mema, sema) or crossover (sema, filter))
goShort = fema < mema and mema < sema and fema < filter and  enable_Short and (crossunder (fema, mema) or crossunder (mema, sema) or crossunder (sema, filter))

close_L = crossunder(fema, mema)
close_S = crossover (fema, mema)

// Profit and Loss conditions

// Long
 
long_TP = priceEntry * (1 + long_TP_Input)  // Long Position Take Profit Calculation
long_SL = priceEntry * (1 - long_SL_Input)  // Long Position Stop Loss Calculation
atrLong = atr(atrLongLength)                // Long Position ATR Calculation
long_TS = low - atrLong * atrLongMultip

long_T_stop  = 0.0                          // Code for calculating Long Positions Trailing Stop Loss/
long_T_stop := if (longTrade)
    longStop = long_TS
    max(long_T_stop[1], longStop)
else 
    0
    
//Short

short_TP = priceEntry * (1 - short_TP_Input) // Long  Position Take Profit Calculation
short_SL = priceEntry * (1 + short_SL_Input) // Short Position Stop Loss Calculation
atrShort = atr(atrShortLength)               // Short Position ATR Calculation
short_TS = high + atrShort * atrShortMultip

short_T_stop   = 0.0                // Code for calculating Short Positions Trailing Stop Loss/
short_T_stop  := if shortTrade
    shortStop  = short_TS
    min(short_T_stop[1], shortStop)
else 
    9999999

// Strategy Long Entry

if goLong and notInTrade 
    strategy.entry("Go Long", long=strategy.long, comment="Go Long", alert_message="Open Long Position")

if longTrade and close_L
    strategy.close("Go Long", when=close_L, comment="Close Long", alert_message="Close Long Position")
    
if e_Long_TP    // Algorithm for Enabled Long Position Profit Loss Parameters
    if (e_Long_TS and not e_Long_SL)
        strategy.exit("Long TP & TS", "Go Long", limit = long_TP, stop = long_T_stop)
    else
        if (e_Long_SL and not e_Long_TS)
            strategy.exit("Long TP & TS", "Go Long",limit = long_TP, stop = long_SL)
        else 
            strategy.exit("Long TP & TS", "Go Long",limit = long_TP)
else
    if not e_Long_TP 
        if (e_Long_TS and not e_Long_SL)
            strategy.exit("Long TP & TS", "Go Long", stop = long_T_stop)
        else
            if (e_Long_SL and not e_Long_TS)
                strategy.exit("Long TP & TS", "Go Long",stop = long_SL)
    

// Strategy Short Entry

if goShort and notInTrade 
    strategy.entry("Go Short", long=strategy.short, comment="Go Short", alert_message="Open Short Position")

if shortTrade and close_S
    strategy.close("Go Short", comment="Close Short", alert_message="Close Short Position")

if e_Short_TP   // Algorithm for Enabled Short Position Profit Loss Parameters
    if (e_Short_TS and not e_Short_SL)
        strategy.exit("Short TP & TS", "Go Short", limit = short_TP, stop = short_T_stop)
    else
        if (e_Short_SL and not e_Short_TS)
            strategy.exit("Short TP & SL", "Go Short",limit = short_TP, stop = short_SL)
        else 
            strategy.exit("Short TP & TS", "Go Short",limit = short_TP)
else
    if not e_Short_TP 
        if (e_Short_TS and not e_Short_SL)
            strategy.exit("Short TS", "Go Short", stop = short_T_stop)
        else
            if (e_Short_SL and not e_Short_TS)
                strategy.exit("Short SL", "Go Short",stop = short_SL)

// Long  Position Profit and Loss Plotting

plot(longTrade and e_Long_TP  and long_TP                          ? long_TP      : na, title="TP Level", color=color.green, style=plot.style_linebr, linewidth=2)
plot(longTrade and e_Long_SL  and long_SL and not e_Long_TS        ? long_SL      : na, title="SL Level", color=color.red,   style=plot.style_linebr, linewidth=2)
plot(longTrade and e_Long_TS  and long_T_stop and not e_Long_SL    ? long_T_stop  : na, title="TS Level", color=color.red,   style=plot.style_linebr, linewidth=2)

// Short Position Profit and Loss Plotting

plot(shortTrade and e_Short_TP and short_TP                        ? short_TP     : na, title="TP Level", color=color.green, style=plot.style_linebr, linewidth=2)
plot(shortTrade and e_Short_SL and short_SL and not e_Short_TS     ? short_SL     : na, title="SL Level", color=color.red,   style=plot.style_linebr, linewidth=2)
plot(shortTrade and e_Short_TS and short_T_stop and not e_Short_SL ? short_T_stop : na, title="TS Level", color=color.red,   style=plot.style_linebr, linewidth=2)