AO کثیر پرت مقداری رجحان بہتر حکمت عملی

AO EMA WF WA
تخلیق کی تاریخ: 2024-12-05 15:01:48 آخر میں ترمیم کریں: 2024-12-05 15:01:48
کاپی: 3 کلکس کی تعداد: 402
1
پر توجہ دیں
1617
پیروکار

AO کثیر پرت مقداری رجحان بہتر حکمت عملی

جائزہ

یہ حکمت عملی ایک کثیر سطحی تجارتی نظام ہے جو حرکیات اور رجحانات کی پیروی پر مبنی ہے۔ یہ ولیمز سمندری فاریکس اشارے ، ولیمز اسپلٹ ، جادوئی جھٹکا اشارے ((AO) اور اشاریہ منتقل کرنے والی اوسط ((EMA) کے ساتھ مل کر متعدد مواقع کی شناخت کرتا ہے۔ حکمت عملی میں فنڈز کی پرتوں کی سرمایہ کاری کا طریقہ کار استعمال کیا جاتا ہے ، جس میں رجحانات میں اضافے کے ساتھ ہی پوزیشنوں میں اضافہ ہوتا ہے ، ایک ساتھ زیادہ سے زیادہ 5 پوزیشنیں ہوسکتی ہیں ، ہر پوزیشن میں 10٪ فنڈز استعمال ہوتے ہیں۔

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

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

اسٹریٹجک فوائد

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

اسٹریٹجک رسک

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

ان خطرات کو کم کرنے کے لئے، یہ مشورہ دیا جاتا ہے کہ:

  • مختلف مارکیٹ کے حالات میں پیرامیٹرز کو بہتر بنائیں
  • فلٹرز میں اضافے پر غور کریں
  • مزید سخت شرطوں کا قیام
  • زیادہ سے زیادہ واپسی کی حد مقرر کریں

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

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Skyrexio

//@version=6
//_______ <licence>
strategy(title = "MultiLayer Awesome Oscillator Saucer Strategy [Skyrexio]", 
         shorttitle = "AO Saucer", 
         overlay = true, 
         format = format.inherit, 
         pyramiding = 5, 
         calc_on_order_fills = false, 
         calc_on_every_tick = false, 
         default_qty_type = strategy.percent_of_equity, 
         default_qty_value = 10, 
         initial_capital = 10000, 
         currency = currency.NONE,  
         commission_type = strategy.commission.percent, 
         commission_value = 0.1,
         slippage = 5,
         use_bar_magnifier = true)


//_______ <constant_declarations>
var const color skyrexGreen               = color.new(#2ECD99, 0)
var const color skyrexGray                = color.new(#F2F2F2, 0)
var const color skyrexWhite               = color.new(#FFFFFF, 0)


//________<variables declarations>
var int trend                             = 0
var float upFractalLevel                  = na
var float upFractalActivationLevel        = na
var float downFractalLevel                = na
var float downFractalActivationLevel      = na
var float saucerActivationLevel           = na
bool highCrossesUpfractalLevel            = ta.crossover(high, upFractalActivationLevel)
bool lowCrossesDownFractalLevel           = ta.crossunder(low, downFractalActivationLevel)
var int signalsQtyInRow                   = 0


//_______ <inputs>
// Trading bot settings
sourceUuid               = input.string(title = "sourceUuid:", defval = "yourBotSourceUuid", group = "🤖Trading Bot Settings🤖")
secretToken              = input.string(title = "secretToken:", defval = "yourBotSecretToken", group = "🤖Trading Bot Settings🤖")


// Trading period settings
lookBackPeriodStart      = input(title = "Trade Start Date/Time", defval = timestamp('2023-01-01T00:00:00'), group = "🕐Trading Period Settings🕐")
lookBackPeriodStop       = input(title = "Trade Stop Date/Time", defval = timestamp('2025-01-01T00:00:00'), group = "🕐Trading Period Settings🕐")


// Strategy settings
EMaLength                = input.int(100, minval = 10, step = 10, title = "EMA Length", group = "📈Strategy settings📈")


//_______ <function_declarations>
//@function       Used to calculate Simple moving average for Alligator
//@param src      Sourse for smma Calculations
//@param length   Number of bars to calculate smma
//@returns        The calculated smma value 
smma(src, length) =>
    var float smma = na
    sma_value = ta.sma(src, length)
    smma := na(smma) ? sma_value : (smma * (length - 1) + src) / length
    smma

//_______ <calculations>


//Upfractal calculation 
upFractalPrice = ta.pivothigh(2, 2)
upFractal = not na(upFractalPrice) 


//Downfractal calculation 
downFractalPrice = ta.pivotlow(2, 2)
downFractal = not na(downFractalPrice)


//Calculating Alligator's teeth 
teeth = smma(hl2, 8)[5]


//Calculating upfractal and downfractal levels
if upFractal 
    upFractalLevel := upFractalPrice
else
    upFractalLevel := upFractalLevel[1]


if downFractal
    downFractalLevel := downFractalPrice
else
    downFractalLevel := downFractalLevel[1]


//Calculating upfractal activation level, downfractal activation level to approximate the trend and this current trend 
if upFractalLevel > teeth
    upFractalActivationLevel := upFractalLevel

if highCrossesUpfractalLevel
    trend := 1
    upFractalActivationLevel := na 
    downFractalActivationLevel := downFractalLevel


if downFractalLevel < teeth
    downFractalActivationLevel := downFractalLevel

if lowCrossesDownFractalLevel
    trend := -1
    downFractalActivationLevel := na 
    upFractalActivationLevel := upFractalLevel


if trend == 1
    upFractalActivationLevel := na

if trend == -1
    downFractalActivationLevel := na


//Calculating filter EMA 
filterEMA = ta.ema(close, EMaLength)


//Сalculating AO saucer signal
ao = ta.sma(hl2,5) - ta.sma(hl2,34)
diff = ao - ao[1]
saucerSignal = ao > ao[1] and ao[1] < ao[2] and ao > 0 and ao[1] > 0 and ao[2] > 0 and trend == 1 and close > filterEMA


//Calculating sauser activation level
if saucerSignal
    saucerActivationLevel := high    
else 
    saucerActivationLevel := saucerActivationLevel[1]


if not na(saucerActivationLevel[1]) and high < saucerActivationLevel[1] and diff > 0
    saucerActivationLevel := high
    saucerSignal := true
    

if (high > saucerActivationLevel[1] and not na(saucerActivationLevel)) or diff < 0
    saucerActivationLevel := na 


//Calculating number of valid saucer signal in current trading cycle 
if saucerSignal and not saucerSignal[1]
    signalsQtyInRow := signalsQtyInRow + 1


if not na(saucerActivationLevel[1]) and diff < 0 and na(saucerActivationLevel) and not (strategy.opentrades[1] <= strategy.opentrades - 1)
    signalsQtyInRow := signalsQtyInRow - 1


if trend == -1 and trend[1] == 1 
    signalsQtyInRow := 0


//_______ <strategy_calls>
//Defining trade close condition
closeCondition =  trend[1] == 1 and trend == -1


//Cancel stop buy order if current Awesome oscillator column lower, than prevoius 
if diff < 0 
    strategy.cancel_all()

//Strategy entry
if (signalsQtyInRow == 1 and not na(saucerActivationLevel)) 
    strategy.entry(id = "entry1", direction = strategy.long, stop = saucerActivationLevel + syminfo.mintick,  alert_message = '{\n"base": "' + syminfo.basecurrency + '",\n"quote": "' + syminfo.currency + '",\n"position": "entry1",\n"price": "' + str.tostring(close) + '",\n"sourceUuid": "' + sourceUuid + '",\n"secretToken": "' + secretToken + '",\n"timestamp": "' + str.tostring(timenow) + '"\n}')

if (signalsQtyInRow == 2 and not na(saucerActivationLevel)) 
    strategy.entry(id = "entry2", direction = strategy.long, stop = saucerActivationLevel + syminfo.mintick,  alert_message = '{\n"base": "' + syminfo.basecurrency + '",\n"quote": "' + syminfo.currency + '",\n"position": "entry2",\n"price": "' + str.tostring(close) + '",\n"sourceUuid": "' + sourceUuid + '",\n"secretToken": "' + secretToken + '",\n"timestamp": "' + str.tostring(timenow) + '"\n}')

if (signalsQtyInRow == 3 and not na(saucerActivationLevel)) 
    strategy.entry(id = "entry3", direction = strategy.long, stop = saucerActivationLevel + syminfo.mintick,  alert_message = '{\n"base": "' + syminfo.basecurrency + '",\n"quote": "' + syminfo.currency + '",\n"position": "entry3",\n"price": "' + str.tostring(close) + '",\n"sourceUuid": "' + sourceUuid + '",\n"secretToken": "' + secretToken + '",\n"timestamp": "' + str.tostring(timenow) + '"\n}')

if (signalsQtyInRow == 4 and not na(saucerActivationLevel)) 
    strategy.entry(id = "entry4", direction = strategy.long, stop = saucerActivationLevel + syminfo.mintick,  alert_message = '{\n"base": "' + syminfo.basecurrency + '",\n"quote": "' + syminfo.currency + '",\n"position": "entry4",\n"price": "' + str.tostring(close) + '",\n"sourceUuid": "' + sourceUuid + '",\n"secretToken": "' + secretToken + '",\n"timestamp": "' + str.tostring(timenow) + '"\n}')

if (signalsQtyInRow == 5 and not na(saucerActivationLevel)) 
    strategy.entry(id = "entry5", direction = strategy.long, stop = saucerActivationLevel + syminfo.mintick,  alert_message = '{\n"base": "' + syminfo.basecurrency + '",\n"quote": "' + syminfo.currency + '",\n"position": "entry5",\n"price": "' + str.tostring(close) + '",\n"sourceUuid": "' + sourceUuid + '",\n"secretToken": "' + secretToken + '",\n"timestamp": "' + str.tostring(timenow) + '"\n}')

//Strategy exit 
if (closeCondition)
    strategy.close_all(alert_message = '{\n"base": "' + syminfo.basecurrency + '",\n"quote": "' + syminfo.currency + '",\n"position": "close",\n"price": "' + str.tostring(close) + '",\n"sourceUuid": "' + sourceUuid + '",\n"secretToken": "' + secretToken + '",\n"timestamp": "' + str.tostring(timenow) + '"\n}')


//_______ <visuals>
//Plotting shapes for adding to current long trades
gradPercent = if strategy.opentrades == 2
    90
else if strategy.opentrades == 3
    80
else if strategy.opentrades == 4
    70
else if strategy.opentrades == 5
    60

pricePlot = plot(close, title="Price", color=color.new(color.blue, 100))
teethPlot = plot(strategy.opentrades > 1 ? teeth : na, title="Teeth", color= skyrexGreen, style=plot.style_linebr, linewidth = 2)
fill(pricePlot, teethPlot, color = color.new(skyrexGreen, gradPercent))
if strategy.opentrades != 1 and  strategy.opentrades[1] == strategy.opentrades - 1
    label.new(bar_index, teeth, style = label.style_label_up, color = color.lime, size = size.tiny, text="Buy More", textcolor = color.black, text_formatting = text.format_bold)


//_______ <alerts>