یہ حکمت عملی K لائنوں کی
موجودہ K- لائن کے جسم کی لمبائی کا فیصلہ کریں۔ اگر یہ پچھلی 6 K- لائنوں کے اوسط جسم کی قیمت سے 3 گنا زیادہ ہے تو ، اسے
اگر لمبے جسم کے ساتھ لگاتار 3
سگنل کا جائزہ لیتے ہوئے ، اگر قیمت پچھلے اعلی یا کم نقطہ کو توڑ دیتی ہے تو ، اضافی تجارتی سگنل بھی تیار کیے جائیں گے۔
ایس ایم اے کو فلٹر کے طور پر استعمال کریں۔ صرف اس وقت پوزیشن کھولیں جب قیمت ایس ایم اے کو توڑ دے۔
پوزیشن لینے کے بعد، اگر قیمت دوبارہ انٹری پوائنٹ یا ایس ایم اے کو توڑتی ہے، تو پوزیشن بند کریں۔
رجحانات کا اندازہ کرنے کے لئے "معقول بار" کا استعمال غیر ضروری مداخلت کو فلٹر کر سکتا ہے اور واضح سگنل بنا سکتا ہے۔
رجحان سگنل اور بریکآؤٹ سگنل کا امتزاج سگنل کے معیار کو بہتر بناتا ہے اور جھوٹے سگنل کو کم کرتا ہے۔
ایس ایم اے فلٹرز اعلی خریدنے اور کم فروخت کرنے سے گریز کرتے ہیں۔ صرف بند سے نیچے خریدیں ، بند سے اوپر فروخت کریں ، اس طرح وشوسنییتا کو بہتر بنائیں۔
منافع لینے اور سٹاپ نقصان کی شرائط کا تعین بروقت رسک کنٹرول کو آسان بناتا ہے۔
یہ جارحانہ حکمت عملی صرف 3 بار سے سگنل کا جائزہ لیتی ہے اور قلیل مدتی اتار چڑھاؤ کو رجحان کی تبدیلی کے طور پر غلط اندازہ لگاسکتی ہے۔
بیک ٹسٹنگ کے اعداد و شمار ناکافی ہیں۔ نتائج مصنوعات اور وقت کے فریم کے درمیان مختلف ہوسکتے ہیں۔
راتوں رات پوزیشن کنٹرول نہیں، راتوں رات ہولڈنگ کے خطرے کے ساتھ.
مزید
زیادہ سے زیادہ پیرامیٹرز تلاش کرنے کے لئے مختلف ٹائم فریم کے اثرات کی جانچ کریں.
خطرات کو کنٹرول کرنے کے لئے اے ٹی آر پر مبنی سٹاپ نقصان شامل کریں.
رات بھر پوزیشن کنٹرول شامل کرنے پر غور کریں.
یہ حکمت عملی
/*backtest start: 2023-12-26 00:00:00 end: 2024-01-02 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //AlexInc //2018 // закрытие - вычислить и в течение скольки-то баров его добиваться // если нет, то по первому противоположному // по стоп-лоссу в любом случае - стоп вычислить //@version=2 strategy(title = "AlexInc's Bar v1.2", shorttitle = "AlexInc Bar 1.2", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") usemar = input(false, defval = false, title = "Use Martingale") tryprofitbars = input(6, defval = 6, minval = 1, maxval = 100, title = "Number of candles to take profit anyway") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %") useSMAfilter = input(false, defval = true, title = "Use SMA filter") SMAlimit = input(10, defval = 10, minval = 1, maxval = 30, title = "SMA filter limit") bodysizeMlt = input(3, defval = 3, minval = 1, maxval = 10, title = "Body Size Multiplier") meanfulbardiv = input(3, title = "Meanful Bar size Divider") showarr = input(false, defval = false, title = "Show Arrows") fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //SMA # index = 0 index := barstate.isfirst ==true ? 0 : nz(index[1])+1 buyindex = 0 buyindex := barstate.isfirst ==true ? 0 : buyindex[1] sellindex = 0 sellindex := barstate.isfirst ==true ? 0 : sellindex[1] //predictprofit = barstate.isfirst ==true ? 0 : predictprofit[1] smafilter = sma(close, SMAlimit) //Body body = abs(close - open) range = abs(high - low) abody = sma(body, 6) max3 = 0 if body >= body[1] and body >= body[2] max3 := body else if body[1] >= body and body[1] >= body[2] max3 := body[1] else if body[2] >= body and body[2] >= body[1] max3 := body[2] prevmax3 = 0 prevmax3 := nz(max3[1]) bar = close > open ? 1 : close < open ? -1 : 0 firstbullishopen = 0 firstbullishopen := bar == 1 and bar[1] != 1 ? open : nz(firstbullishopen[1]) firstbearishopen = 0 firstbearishopen := bar == -1 and bar[1] != -1 ? open : nz(firstbearishopen[1]) meanfulbar = body > abody / meanfulbardiv meanfulbearish = 0 meanfulbearish := nz(meanfulbearish[1]) meanfulbullish = 0 meanfulbullish := nz(meanfulbullish[1]) if meanfulbar if bar == 1 meanfulbullish := 1 + meanfulbullish meanfulbearish := 0 else if bar == -1 meanfulbearish := 1 + meanfulbearish meanfulbullish := 0 plot(min(low, high)-10, style=circles, color = meanfulbar ? yellow:black, linewidth=3) //Signals up1 = (meanfulbearish >= 3) and (close < firstbullishopen or 1) and (strategy.position_size == 0 or close < strategy.position_avg_price) and body > abody / 5 and (useSMAfilter == false or close < smafilter) if up1 == true predictprofit = sma(body, 3) up2 = sma(bar, 1) == -1 and body > prevmax3 * bodysizeMlt and (strategy.position_size == 0 or close < strategy.position_avg_price) and body > abody / 5 and (useSMAfilter == false or close < smafilter) if up2 == true predictprofit = body * 0.5 plot(min(low, high), style=circles, color = up1?blue:up2?green:gray, linewidth=3) dn1 = (meanfulbullish >= 3) and (close > firstbearishopen or 1) and (strategy.position_size == 0 or close > strategy.position_avg_price) and body > abody / 5 and (useSMAfilter==false or close > smafilter) if dn1 ==true predictprofit = sma(body, 3) dn2 = sma(bar, 1) == 1 and body > prevmax3 * bodysizeMlt and (strategy.position_size == 0 or close > strategy.position_avg_price) and body > abody / 5 and (useSMAfilter==false or close > smafilter) if dn2 ==true predictprofit = body * 0.5 plot(max(low, high), style=circles, color = dn1?blue:dn2?green:gray, linewidth=3) exit = (((strategy.position_size > 0 and bar == 1 ) or (strategy.position_size < 0 and bar == -1)) and body > abody / 2 ) // or index >= buyindex (or sellindex) + tryprofitbars //Arrows col = exit ? black : up1 or dn1 ? blue : up2 or dn2 ? red : na needup = up1 or up2 needdn = dn1 or dn2 needexitup = exit and strategy.position_size < 0 needexitdn = exit and strategy.position_size > 0 plotarrow(showarr and needup ? 1 : na, colorup = blue, colordown = blue, transp = 0) plotarrow(showarr and needdn ? -1 : na, colorup = blue, colordown = blue, transp = 0) plotarrow(showarr and needexitup ? 1 : na, colorup = black, colordown = black, transp = 0) plotarrow(showarr and needexitdn ? -1 : na, colorup = black, colordown = black, transp = 0) //Trading profit = exit ? ((strategy.position_size > 0 and close > strategy.position_avg_price) or (strategy.position_size < 0 and close < strategy.position_avg_price)) ? 1 : -1 : profit[1] mult = usemar ? exit ? profit == -1 ? mult[1] * 2 : 1 : mult[1] : 1 lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 * mult : lot[1] if up1 or up2 if strategy.position_size < 0 strategy.close_all() buyindex = index sellindex = index if strategy.position_size == 0 buyindex = index strategy.entry("Long", strategy.long, needlong == false ? 0 : lot ) if dn1 or dn2 if strategy.position_size > 0 strategy.close_all() buyindex = index sellindex = index if strategy.position_size == 0 sellindex = index strategy.entry("Short", strategy.short, needshort == false ? 0 : lot ) if exit strategy.close_all()