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

اے او کی کثیر سطح کی مقدار میں اضافہ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-12-05 15:01:48
ٹیگز:اے اوای ایم اےڈبلیو ایفWA

img

جائزہ

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

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

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

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

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

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

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

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

  • مختلف مارکیٹ کے ماحول کے لئے پیرامیٹرز کو بہتر بنائیں
  • اتار چڑھاؤ فلٹر شامل کرنے پر غور کریں
  • پوزیشن بلڈنگ کے سخت حالات قائم کریں
  • زیادہ سے زیادہ استعمال کی حد مقرر کریں

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

  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>


متعلقہ

مزید