ہیلو سب ، میں مشین لرننگ کو ٹریڈنگ ویو میں لانے والا ایک بھاری پائیتھون پروگرامر ہوں۔ یہ 15 منٹ کی بٹ کوائن لانگ حکمت عملی مشین لرننگ لائبریری اور پائیتھون میں 1 سال کے تاریخی اعداد و شمار کا استعمال کرتے ہوئے بنائی گئی ہے۔ ہر پیرامیٹر کو ہائپر آپٹمائزڈ کیا گیا ہے تاکہ آپ کو 15 منٹ کے چارٹ پر بٹ کوائن کے لئے سب سے زیادہ منافع بخش خرید و فروخت کے سگنل فراہم کیے جاسکیں۔ تاریخی بٹ کوائن ڈیٹا بائننس API سے اکٹھا کیا گیا تھا ، اگر آپ اس لمبی حکمت عملی کو استعمال کرنے کے لئے بہترین تبادلے کو جاننا چاہتے ہیں۔ یہ ایک آسان بولنگر بینڈ اور آر ایس آئی حکمت عملی ہے جس کے دو ورژن ٹریڈنگ ویو کی ترتیبات میں شامل ہیں۔ پہلے ورژن میں 7.5 کا شارپ تناسب ہے جو حیرت انگیز ہے ، اور دوسرے ورژن میں 2.5 کے شارپ ٹیسٹ تناسب کے ساتھ بہترین اسٹاپ نقصان اور منافع کی پوزیشنیں شامل ہیں۔ مجھے تھوڑا سا مزید بات کرنے دیں کہ ٹریڈنگ حکمت عملی کس طرح کام کرتی ہے۔ ہائپر ٹیسٹ سگنل اس وقت شروع ہوتا ہے جب
پی ایس آپ ہمیشہ زیادہ منافع کے لئے اس حکمت عملی کو اہرام بنا سکتے ہیں۔ میں صرف اپنی حکمت عملی بنانے کے وقت اہرام سازی شامل نہیں کرتا ہوں کیونکہ میں آپ کو ایک بار خریدنے اور ایک بار فروخت کرنے پر مبنی حقیقی جیت / نقصان کا تناسب دکھانا چاہتا ہوں۔ مجھے لگتا ہے کہ جب کوئی حکمت عملی بناتی ہے جس میں اہرام سازی شامل ہوتی ہے تو وہ جیت کی شرح کو غلط کرتا ہے۔ یہ آپ سب کے ساتھ شفاف ہونے کا میرا طریقہ ہے۔ تفریح کی تجارت!
بیک ٹسٹ
/*backtest start: 2022-04-24 00:00:00 end: 2022-05-23 23:59:00 period: 2h 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/ // © Bunghole //@version=4 strategy(overlay=true, shorttitle="Flawless Victory Strategy", default_qty_type = strategy.percent_of_equity, initial_capital = 100000, default_qty_value = 100, pyramiding = 0, title="Flawless Victory Strategy", currency = 'USD') ////////// ** Inputs ** ////////// // Stoploss and Profits Inputs v1 = input(true, title="Version 1 - Doesn't Use SL/TP") v2 = input(false, title="Version 2 - Uses SL/TP") v3 = input(false, title="Version 3 - Uses SL/TP") v2stoploss_input = input(6.604, title='Stop Loss %', type=input.float, minval=0.01)/100 v2takeprofit_input = input(2.328, title='Take Profit %', type=input.float, minval=0.01)/100 v2stoploss_level = strategy.position_avg_price * (1 - v2stoploss_input) v2takeprofit_level = strategy.position_avg_price * (1 + v2takeprofit_input) v3stoploss_input = input(8.882, title='Stop Loss %', type=input.float, minval=0.01)/100 v3takeprofit_input = input(2.317, title='Take Profit %', type=input.float, minval=0.01)/100 v3stoploss_level = strategy.position_avg_price * (1 - v3stoploss_input) v3takeprofit_level = strategy.position_avg_price * (1 + v3takeprofit_input) plot(v2 and v2stoploss_input and v2stoploss_level ? v2stoploss_level: na, color=color.red, style=plot.style_linebr, linewidth=2, title="v2 Stoploss") plot(v2 and v2takeprofit_input ? v2takeprofit_level: na, color=color.green, style=plot.style_linebr, linewidth=2, title="v2 Profit") plot(v3 and v3stoploss_input and v3stoploss_level ? v3stoploss_level: na, color=color.red, style=plot.style_linebr, linewidth=2, title="v3 Stoploss") plot(v3 and v3takeprofit_input ? v3takeprofit_level: na, color=color.green, style=plot.style_linebr, linewidth=2, title="v3 Profit") ////////// ** Indicators ** ////////// // RSI len = 14 src = close up = rma(max(change(src), 0), len) down = rma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down) // MFI MFIlength = 14 MFIsrc = hlc3 MFIupper = sum(volume * (change(MFIsrc) <= 0 ? 0 : MFIsrc), MFIlength) MFIlower = sum(volume * (change(MFIsrc) >= 0 ? 0 : MFIsrc), MFIlength) _rsi(MFIupper, MFIlower) => if MFIlower == 0 100 if MFIupper == 0 0 100.0 - (100.0 / (1.0 + MFIupper / MFIlower)) mfi = _rsi(MFIupper, MFIlower) // v1 Bollinger Bands length1 = 20 src1 = close mult1 = 1.0 basis1 = sma(src1, length1) dev1 = mult1 * stdev(src1, length1) upper1 = basis1 + dev1 lower1 = basis1 - dev1 // v2 Bollinger Bands length2 = 17 src2 = close mult2 = 1.0 basis2 = sma(src2, length2) dev2 = mult2 * stdev(src2, length2) upper2 = basis2 + dev2 lower2 = basis2 - dev2 ////////// ** Triggers and Guards ** ////////// // v1 Strategy Parameters RSILowerLevel1 = 42 RSIUpperLevel1 = 70 BBBuyTrigger1 = src1 < lower1 BBSellTrigger1 = src1 > upper1 rsiBuyGuard1 = rsi > RSILowerLevel1 rsiSellGuard1 = rsi > RSIUpperLevel1 // v2 Strategy Parameters RSILowerLevel2 = 42 RSIUpperLevel2 = 76 BBBuyTrigger2 = src2 < lower2 BBSellTrigger2 = src2 > upper2 rsiBuyGuard2 = rsi > RSILowerLevel2 rsiSellGuard2 = rsi > RSIUpperLevel2 // v3 Strategy Parameters MFILowerLevel3 = 60 RSIUpperLevel3 = 65 MFIUpperLevel3 = 64 BBBuyTrigger3 = src1 < lower1 BBSellTrigger3 = src1 > upper1 mfiBuyGuard3 = mfi < MFILowerLevel3 rsiSellGuard3 = rsi > RSIUpperLevel3 mfiSellGuard3 = mfi > MFIUpperLevel3 //////////** Strategy Signals ** ////////// // v1 Signals Buy_1 = BBBuyTrigger1 and rsiBuyGuard1 Sell_1 = BBSellTrigger1 and rsiSellGuard1 if v1 == true strategy.entry("Long", strategy.long, when = Buy_1, alert_message = "v1 - Buy Signal!") strategy.entry("Sell", when = Sell_1, alert_message = "v1 - Sell Signal!") // v2 Signals Buy_2 = BBBuyTrigger2 and rsiBuyGuard2 Sell_2 = BBSellTrigger2 and rsiSellGuard2 if v2 == true strategy.entry("Long", strategy.long, when = Buy_2, alert_message = "v2 - Buy Signal!") strategy.entry("Sell", when = Sell_2, alert_message = "v2 - Sell Signal!") strategy.exit("Stoploss/TP", "Long", stop = v2stoploss_level, limit = v2takeprofit_level) // v3 Signals Buy_3 = BBBuyTrigger3 and mfiBuyGuard3 Sell_3 = BBSellTrigger3 and rsiSellGuard3 and mfiSellGuard3 if v3 == true strategy.entry("Long", strategy.long, when = Buy_3, alert_message = "v2 - Buy Signal!") strategy.entry("Sell", when = Sell_3, alert_message = "v2 - Sell Signal!") strategy.exit("Stoploss/TP", "Long", stop = v3stoploss_level, limit = v3takeprofit_level)