নিখুঁত বিজয় কৌশল

লেখক:চাওঝাং, তারিখ: ২০২২-০৫-২৫ ১৭ঃ০৮ঃ১৩
ট্যাগঃআরএমএএসএমএ

হ্যালো সবাই, আমি একজন ভারী পাইথন প্রোগ্রামার যিনি ট্রেডিং ভিউতে মেশিন লার্নিং নিয়ে আসছেন। এই 15 মিনিটের বিটকয়েন লং কৌশলটি পাইথনে একটি মেশিন লার্নিং লাইব্রেরি এবং 1 বছরের historicalতিহাসিক ডেটা ব্যবহার করে তৈরি করা হয়েছিল। প্রতিটি প্যারামিটার আপনাকে 15 মিনিটের চার্টে বিটকয়েনের জন্য সর্বাধিক লাভজনক কেনা এবং বিক্রয় সংকেত আনতে হাইপার-অপ্টিমাইজ করা হয়েছে। বিটকয়েনের historicalতিহাসিক ডেটা বিন্যান্স এপিআই থেকে সংগ্রহ করা হয়েছিল, যদি আপনি এই দীর্ঘ কৌশলটি ব্যবহার করার জন্য সেরা বিনিময় জানতে চান। এটি ট্রেডিং ভিউ সেটিংসে অন্তর্ভুক্ত দুটি সংস্করণ সহ একটি সহজ বোলিংজার ব্যান্ড এবং আরএসআই কৌশল। প্রথম সংস্করণে 7.5 এর শার্প অনুপাত রয়েছে যা আশ্চর্যজনক, এবং দ্বিতীয় সংস্করণে 2.5 এর শার্প পরীক্ষার অনুপাত সহ সেরা স্টপ লস এবং লাভের অবস্থানগুলি অন্তর্ভুক্ত রয়েছে। ট্রেডিং কৌশলটি কীভাবে কাজ করে সে সম্পর্কে আমি কিছুটা কথা বলব। যখন মূল্য বন্ধ হয় তখন শার্প লার্নিং ব্যান্ড

P.S. আপনি সবসময় আরো লাভের জন্য এই কৌশলটি পিরামিড করতে পারেন! আমি শুধু আমার কৌশল তৈরি করার সময় পিরামিডিং যোগ করি না কারণ আমি আপনাকে সত্য জয় / ক্ষতি অনুপাত দেখাতে চাই যা এক সময় কেনা এবং এক সময় বিক্রি করে। আমার মনে হয় যখন একটি কৌশল তৈরি করা হয় যা পিরামিডিংকে সরাসরি ব্যাট থেকে জয়ের হারকে জালিয়াতি করে। এটি আপনার সকলের সাথে স্বচ্ছ হওয়ার আমার উপায়। মজা করুন ট্রেডিং!

ব্যাকটেস্ট

img


/*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)



সম্পর্কিত

আরো