اسٹوکاسٹک سگنل، ایس ایم اے فلٹر اور رینڈم سٹاپ نقصان/منافع لینے کے ساتھ کوانٹ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-08 16:07:02
ٹیگز:

img

جائزہ

اس حکمت عملی کا نام DayLight Hunter Quant Strategy with Two-way Position, Stochastic Signal and Random Stop loss/take profit ہے۔ اس کا بنیادی خیال اسٹوکاسٹک اشارے کے ساتھ تجارتی سگنل تیار کرنا ، ایس ایم اے کے ساتھ سگنل کو فلٹر کرنا ، دو طرفہ پوزیشن کھولنے کو نافذ کرنا ، اور منافع میں مقفل کرنے کے لئے بے ترتیب اسٹاپ نقصان اور منافع لینے کے پوائنٹس مرتب کرنا ہے۔

حکمت عملی منطق

حکمت عملی تجارتی سگنل پیدا کرنے کے لئے 5 دن کے اسٹوکاسٹک اشارے %K اور %D لائن کراسورس کا استعمال کرتی ہے۔ جب %K نیچے سے %D سے تجاوز کرتا ہے تو ، خرید کا سگنل تیار کیا جاتا ہے۔ جب %K اوپر سے %D سے نیچے عبور کرتا ہے تو ، فروخت کا سگنل تیار کیا جاتا ہے۔ جھوٹے سگنل کو فلٹر کرنے کے لئے ، 50 دن کی ایس ایم اے لائنیں استعمال کی جاتی ہیں - صرف اس وقت جب بند قیمت ایس ایم اے کے نچلے حصے سے نیچے ہوتی ہے تو ، خرید کا سگنل درست ہوتا ہے۔ صرف اس وقت جب بند قیمت ایس ایم اے کے اعلی نقطہ سے اوپر ہوتی ہے تو ، فروخت کا سگنل درست ہوتا ہے۔

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

فوائد

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

خطرات

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

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

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

حکمت عملیوں کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:

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

  2. رجحانات کا تعین کرنے میں اسٹوکاسٹک کی مدد کرنے کے لئے دیگر تکنیکی اشارے کو بہتر بنائیں یا شامل کریں ، مثال کے طور پر MACD ، KD وغیرہ۔

  3. مختلف پیرامیٹرز کے تحت اسٹوکاسٹک سگنلز کی درستگی ، جیت کی شرح وغیرہ جیسے میٹرکس کا مطالعہ کرنے کے لئے مشین لرننگ ماڈلز کا استعمال کریں ، تاکہ زیادہ سے زیادہ پیرامیٹر کی جگہ مل سکے۔

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

  5. پوزیشن سائزنگ ماڈیول شامل کریں، کارکردگی، مارکیٹ کے نظام وغیرہ کی بنیاد پر متحرک پوزیشن ایڈجسٹمنٹ کی اجازت دیتا ہے.

نتیجہ

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


/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-07 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
var int slippage = 0
strategy("X48 - DayLight Hunter | Strategy | V.01.01", overlay=true, calc_on_order_fills = true, initial_capital = 50,default_qty_type = strategy.fixed, default_qty_value = 1, commission_type = strategy.commission.percent, commission_value = 0, currency = currency.USD, slippage = 0)

var bool hedge_mode = false
var int sto_buy = 0
var int sto_sell = 0

Trade_Mode = input.string(defval = "Hedge", title = "⚖️ Mode For Trade [Oneway / Hedge]", options = ["Oneway", "Hedge"], group = "Mode Trade", tooltip = "Oneway = Switching Position Type With Signal\nHedge Mode = Not Switching Position Type Unitl TP or SL")
Risk_Mode = input.string(defval = "Low Risk", title = "⚖️ Risk Signal Mode [Low / Medium / High]", options = ["Low Risk", "Medium Risk", "High Risk"], group = "Mode Trade", tooltip = "[[Signal Form Stochastic]]\nLow Risk is >= 80 and <= 20\nMedium Risk is >= 70 and <= 30\nHigh Risk is >= 50 and <=50")

if Trade_Mode == "Oneway"
    hedge_mode := false
else
    hedge_mode := true

if Risk_Mode == "Low Risk"
    sto_buy := 20
    sto_sell := 80
else if Risk_Mode == "Medium Risk"
    sto_buy := 30
    sto_sell := 70
else if Risk_Mode == "High Risk"
    sto_buy := 50
    sto_sell := 50

periodK = input.int(15, title="%K Length", minval=1, group = "Stochastic Setting", inline = "Sto0")
smoothK = input.int(3, title="%K Smoothing", minval=1, group = "Stochastic Setting", inline = "Sto0")
periodD = input.int(3, title="%D Smoothing", minval=1, group = "Stochastic Setting", inline = "Sto0")

SMA_Mode = input.bool(defval = true, title = "SMA High and Low Filter Mode", group = "SMA Filter Mode", tooltip = "Sell Signal With Open >= SMA High\nBuy Signal With Close <= SMA Low")
SMA_High = input.int(defval = 50, title = "SMA High", group = "SMA Filter Mode", inline = "SMA1")
SMA_Low = input.int(defval = 50, title = "SMA Low", group = "SMA Filter Mode", inline = "SMA1")

k = ta.sma(ta.stoch(close, high, low, periodK), smoothK)
d = ta.sma(k, periodD)
high_line = ta.sma(high, SMA_High)
low_line = ta.sma(low, SMA_Low)
plot(SMA_Mode ? high_line : na, "H-Line", color = color.yellow, linewidth = 2)
plot(SMA_Mode ? low_line : na, "L-Line", color = color.blue, linewidth = 2)

entrybuyprice = strategy.position_avg_price

var bool longcondition = na
var bool shortcondition = na

if SMA_Mode == true
    longcondition := ta.crossover(k,d) and d <= sto_buy and close < low_line and open < low_line// or ta.crossover(k, 20)// and close <= low_line
    shortcondition := ta.crossunder(k,d) and d >= sto_sell and close > high_line and open > high_line// or ta.crossunder(k, 80)// and close >= high_line
else
    longcondition := ta.crossover(k,d) and d <= sto_buy
    shortcondition := ta.crossunder(k,d) and d >= sto_sell
//longcondition_double = ta.crossover(d,20) and close < low_line// and strategy.position_size > 0
//shortcondition_double = ta.crossunder(d,80) and close > high_line// and strategy.position_size < 0

//=============== TAKE PROFIT and STOP LOSS by % =================

tpsl(percent) =>
    strategy.position_avg_price * percent / 100 / syminfo.mintick
GR4 = "=====🆘🆘🆘 TAKE PROFIT & STOP LOSS BY [%] 🆘🆘🆘====="
mode= input.bool(title="🆘 Take Profit & Stop Loss By Percent (%)", defval=true, group=GR4, tooltip = "Take Profit & Stop Loss by % Change\n0 = Disable")
tp_l = tpsl(input.float(0, title='🆘 TP [LONG] % >> [Oneway Only]', group=GR4, tooltip = "0 = Disable"))
tp_s = tpsl(input.float(0, title='🆘 TP [SHORT] % >> [Oneway Only]', group=GR4, tooltip = "0 = Disable"))
sl = tpsl(input.float(0, title='🆘 Stop Loss %', group=GR4, tooltip = "0 = Disable"))
tp_pnl = input.float(defval = 1, title = "🆘 TP by PNL $ eg. (0.1 = 0.1$)", group = GR4)
spread_size = input.float(defval = 0.350, title = "🆘 Spread Point Size(Eg. 35 Point or 350 Point From Your Broker Digits)", tooltip = "Spread Point Form Your Broker \nEg. 1920.124 - 1920.135 or 1920.12 - 1920.13\nPlease Check From Your Broker", group = GR4)

GR5 = "===💮💮💮 Hedge Mode 💮💮💮==="
//hedge_mode = input.bool(defval = true, title = "⚖️ Hedge Mode", group = GR5)
hedge_point = input.int(defval = 500, title = "💯 Hedge Point Range", group = GR5, tooltip = "After Entry Last Position And Current Price More Than Point Range Are Open New Hedge Position")
hedge_gale = input.float(defval = 2.0, title = "✳️ Martingale For Hedge Multiply [default = 2]", tooltip = "Martingale For Multiply Hedge Order", group = GR5)
hedge_point_size = hedge_point/100

calcStopLossPrice(OffsetPts) =>
    if strategy.position_size > 0
        strategy.position_avg_price - OffsetPts * syminfo.mintick
    else if strategy.position_size < 0
        strategy.position_avg_price + OffsetPts * syminfo.mintick
    else
        na

calcStopLossL_AlertPrice(OffsetPts) =>
    strategy.position_avg_price - OffsetPts * syminfo.mintick
calcStopLossS_AlertPrice(OffsetPts) =>
    strategy.position_avg_price + OffsetPts * syminfo.mintick

calcTakeProfitPrice(OffsetPts) =>
    if strategy.position_size > 0
        strategy.position_avg_price + OffsetPts * syminfo.mintick
    else if strategy.position_size < 0
        strategy.position_avg_price - OffsetPts * syminfo.mintick
    else
        na

calcTakeProfitL_AlertPrice(OffsetPts) =>
    strategy.position_avg_price + OffsetPts * syminfo.mintick
calcTakeProfitS_AlertPrice(OffsetPts) =>
    strategy.position_avg_price - OffsetPts * syminfo.mintick

var stoploss = 0.
var stoploss_l = 0.
var stoploss_s = 0.
var takeprofit = 0.
var takeprofit_l = 0.
var takeprofit_s = 0.
var takeprofit_ll = 0.
var takeprofit_ss = 0.

if mode == true
    if (strategy.position_size > 0)
        if sl > 0
            stoploss := calcStopLossPrice(sl)
            stoploss_l := stoploss
        else if sl <= 0
            stoploss := na
        if tp_l > 0
            takeprofit := tp_l
            takeprofit_ll := close + ((close/100)*tp_l)
            //takeprofit_s := na
        else if tp_l <= 0
            takeprofit := na
    if (strategy.position_size < 0)
        if sl > 0
            stoploss := calcStopLossPrice(sl)
            stoploss_s := stoploss
        else if sl <= 0
            stoploss := na
        if tp_s > 0
            takeprofit := tp_s
            takeprofit_ss := close - ((close/100)*tp_s)
            //takeprofit_l := na
        else if tp_s <= 0
            takeprofit := na
    else if strategy.position_size == 0
        stoploss := na
        takeprofit := na
        //takeprofit_l := calcTakeProfitL_AlertPrice(tp_l)
        //takeprofit_s := calcTakeProfitS_AlertPrice(tp_s)
        //stoploss_l := calcStopLossL_AlertPrice(sl)
        //stoploss_s := calcStopLossS_AlertPrice(sl)

//////////// INPUT BACKTEST RANGE ////////////////////////////////////////////////////
var string BTR1         = '════════⌚⌚ INPUT BACKTEST TIME RANGE ⌚⌚════════'
i_startTime             = input(defval = timestamp("01 Jan 1945 00:00 +0000"), title = "Start", inline="timestart", group=BTR1, tooltip = 'Start Backtest YYYY/MM/DD')
i_endTime               = input(defval = timestamp("01 Jan 2074 23:59 +0000"), title = "End", inline="timeend", group=BTR1, tooltip = 'End Backtest YYYY/MM/DD')
//////////////// Strategy Alert For X4815162342 BOT //////////////////////
Text_Alert_Future = '{{strategy.order.alert_message}}'
copy_Fu = input( defval= Text_Alert_Future ,    title="Alert Message for BOT", inline = '00'  ,group = '═ Bot Setting ═ \n >> If You Dont Use Bot Just Pass It' ,tooltip = 'Alert For X48-BOT > Copy and Paste To Alert Function')
TimeFrame_input = input(defval= 'Input Your TimeFrame [1m, 15m, 1h, 4h, 1d ,1w]' ,    title="TimeFrame Text Alert", inline = '00'  ,group = '═ Bot Setting ═ \n >> If You Dont Use Bot Just Pass It')
string Alert_EntryL = '🪙 Asset : {{ticker}} \n💱 Status : {{strategy.market_position}}\n🕛 TimeFrame : '+str.tostring(TimeFrame_input)+'\n💸 Price : {{strategy.order.price}} $\n✅ TP : '+str.tostring(takeprofit_ll)+' $\n❌ SL : '+str.tostring(stoploss_l)+' $\n⏰ Time : {{timenow}}'
string Alert_EntryS = '🪙 Asset : {{ticker}} \n💱 Status : {{strategy.market_position}}\n🕛 TimeFrame : '+str.tostring(TimeFrame_input)+'\n💸 Price : {{strategy.order.price}} $\n✅ TP : '+str.tostring(takeprofit_ss)+' $\n❌ SL : '+str.tostring(stoploss_s)+' $\n⏰ Time : {{timenow}}'
string Alert_TPSL = '🪙 Asset : {{ticker}}\n🕛 TimeFrame : '+str.tostring(TimeFrame_input)+'\n💹 {{strategy.order.comment}}\n💸 Price : {{strategy.order.price}} $\n⏰ Time : {{timenow}}'

if true
    if longcondition
        strategy.entry("Long", strategy.long, comment = "🌙", alert_message = Alert_EntryL)
    //if longcondition_double
    //    //strategy.cancel_all()
    //    strategy.entry("Long2", strategy.long, comment = "🌙🌙")
    //    //strategy.exit("Exit",'Long', qty_percent = 100 , profit = takeprofit, stop = stoploss, comment_profit = "TP💚L", comment_loss = "SL💚L")
    if shortcondition
        strategy.entry("Short", strategy.short, comment = "👻", alert_message = Alert_EntryS)
        //strategy.exit("Exit",'Short', qty_percent = 100, profit = takeprofit, stop = stoploss, comment_profit = "TP❤️️S", comment_loss = "SL❤️️S")
    //if shortcondition_double
    //    //strategy.cancel_all()
    //    strategy.entry("Short2", strategy.short, comment = "👻👻")

if strategy.position_size > 0 and strategy.opentrades >= 1 and hedge_mode == true
    entrypricel = strategy.opentrades.entry_price(strategy.opentrades - 1)
    callpointsize =  entrypricel - close
    lastsize = strategy.position_size
    if callpointsize >= hedge_point_size and longcondition
        strategy.order("Long2", strategy.long, qty = lastsize * hedge_gale, comment = "🌙⌛", alert_message = Alert_EntryL)

else if strategy.position_size < 0 and strategy.opentrades >= 1 and hedge_mode == true
    entryprices = strategy.opentrades.entry_price(strategy.opentrades - 1)
    callpointsize = (entryprices - close)* -1
    lastsize = (strategy.position_size) * -1
    if callpointsize >= hedge_point_size and shortcondition
        strategy.order("Short2", strategy.short, qty = lastsize * hedge_gale, comment = "👻⌛", alert_message = Alert_EntryS)

last_price_l = (strategy.opentrades.entry_price(strategy.opentrades - 1) + (strategy.opentrades.entry_price(strategy.opentrades - 1)/100) * takeprofit) + spread_size
last_price_s = (strategy.opentrades.entry_price(strategy.opentrades - 1) - (strategy.opentrades.entry_price(strategy.opentrades - 1)/100) * takeprofit) - spread_size 
current_price = request.security(syminfo.tickerid, "1", close)
current_pricel = request.security(syminfo.tickerid, "1", close) + spread_size
current_prices = request.security(syminfo.tickerid, "1", close) - spread_size
//if mode == true
if strategy.position_size > 0 and strategy.openprofit >= tp_pnl and mode == true and hedge_mode == true
    lastsize = strategy.position_size
    lastprofitorder = strategy.openprofit
    //if lastprofitorder >= 0.07
    //strategy.close('Long', qty = lastsize, comment = "TP💚L", alert_message = Alert_TPSL, immediately = true)
    strategy.cancel_all()
    strategy.close_all(comment = "TP💚PNL", alert_message = Alert_TPSL, immediately = true)
    //strategy.close_all(comment = "TP💚LH", alert_message = Alert_TPSL)
    //strategy.exit("Exit",'Long2', qty_percent = 100, profit = last_price_l, stop = stoploss, comment_profit = "TP💚LH", comment_loss = "SL💚LH", alert_message = Alert_TPSL)
    //strategy.exit("Exit",'Long', qty_percent = 100, profit = last_price_l, stop = stoploss, comment_profit = "TP💚L", comment_loss = "SL💚L", alert_message = Alert_TPSL)
else if strategy.position_size > 0 and strategy.openprofit < tp_pnl and mode == true and hedge_mode == true
    strategy.exit("Exit",'Long', qty_percent = 100, stop = stoploss, comment_loss = "SL💚%L", alert_message = Alert_TPSL)

if strategy.position_size > 0 and mode == true and hedge_mode == false
    //strategy.close_all(comment = "TP💚LH", alert_message = Alert_TPSL, immediately = true)
    strategy.exit("Exit",'Long', qty_percent = 100, profit = takeprofit, stop = stoploss, comment_profit = "TP💚%L", comment_loss = "SL💚%L", alert_message = Alert_TPSL)
    //strategy.exit("Exit",'Long', qty_percent = 100, profit = takeprofit, stop = stoploss, comment_profit = "TP💚LL", comment_loss = "SL💚L", alert_message = Alert_TPSL)

//else if strategy.position_size > 0 and strategy.opentrades > 1
//    lastsize = strategy.position_size
//    lastprofitorder = strategy.openprofit
//    if lastprofitorder >= 0.07
//        strategy.close_all(comment = "TP💚LL", alert_message = Alert_TPSL)
if strategy.position_size < 0 and strategy.openprofit >= tp_pnl and mode == true and hedge_mode == true
    lastsize = (strategy.position_size) * -1
    lastprofitorder = strategy.openprofit
    //if lastprofitorder >= 0.07
    //strategy.close('Short', qty = lastsize, comment = "TP❤️️S", alert_message = Alert_TPSL, immediately = true)
    strategy.cancel_all()
    strategy.close_all(comment = "TP❤️️PNL", alert_message = Alert_TPSL, immediately = true)
    //strategy.close_all(comment = "TP❤️️SH", alert_message = Alert_TPSL)
    //strategy.exit("Exit",'Short2', qty_percent = 100, profit = last_price_s, stop = stoploss, comment_profit = "TP❤️️SH", comment_loss = "SL❤️️SH", alert_message = Alert_TPSL)
    //strategy.exit("Exit",'Short', qty_percent = 100, profit = last_price_s, stop = stoploss, comment_profit = "TP❤️️S", comment_loss = "SL❤️️S", alert_message = Alert_TPSL)
else if strategy.position_size < 0 and strategy.openprofit < tp_pnl and mode == true and hedge_mode == true
    strategy.exit("Exit",'Short', qty_percent = 100, stop = stoploss, comment_loss = "SL❤️️%S", alert_message = Alert_TPSL)
if strategy.position_size < 0 and mode == true and hedge_mode == false
    //strategy.close_all(comment = "TP❤️️SH", alert_message = Alert_TPSL, immediately = true)
    strategy.exit("Exit",'Short', qty_percent = 100, profit = takeprofit, stop = stoploss, comment_profit = "TP❤️️%S", comment_loss = "SL❤️️%S", alert_message = Alert_TPSL)
    //strategy.exit("Exit",'Short', qty_percent = 100, profit = takeprofit, stop = stoploss, comment_profit = "TP❤️️S", comment_loss = "SL❤️️S", alert_message = Alert_TPSL)

//else if strategy.position_size < 0 and strategy.opentrades > 1
//    lastsize = (strategy.position_size) * -1
//    lastprofitorder = strategy.openprofit
//    if lastprofitorder >= 0.07
//        strategy.close_all(comment = "TP❤️️SS", alert_message = Alert_TPSL)

//===================== เรียกใช้  library =========================
import X4815162342/X48_LibaryStrategyStatus/2 as fuLi 
//แสดงผล Backtest

show_Net = input.bool(true,'Monitor Profit&Loss', inline = 'Lnet', group = '= PNL MONITOR SETTING =')
position_ = input.string('bottom_center','Position', options = ['top_right','middle_right','bottom_right','top_center','middle_center','bottom_center','middle_left','bottom_left'] , inline = 'Lnet')
size_i = input.string('auto','size', options = ['auto','tiny','small','normal'] , inline = 'Lnet') 
color_Net = input.color(color.blue,"" , inline = 'Lnet')
// fuLi.NetProfit_Show(show_Net , position_ , size_i,  color_Net )


مزید