এলোমেলো হাঁটার কৌশল


সৃষ্টির তারিখ: 2023-10-09 16:10:24 অবশেষে সংশোধন করুন: 2023-10-09 16:10:24
অনুলিপি: 0 ক্লিকের সংখ্যা: 707
1
ফোকাস
1617
অনুসারী

ওভারভিউ

র্যান্ডম ভ্রমন কৌশল হল একটি স্বয়ংক্রিয় ট্রেডিং কৌশল যা র্যান্ডম সংখ্যা উৎপাদনের উপর ভিত্তি করে। এই কৌশলটি একটি রৈখিক সমান্তরাল জেনারেটর ব্যবহার করে যা সেট করা বীজের উপর ভিত্তি করে র্যান্ডম সংখ্যা তৈরি করে, যে সংখ্যাটি হ্রাসের চেয়ে বড় এবং হ্রাসের চেয়ে ছোট হয়, যা হ্রাসের সময় ফাঁকা হয়, যা র্যান্ডমভাবে প্রবেশ করে।

কৌশল নীতি

এই কৌশলটি মূলত নিম্নলিখিত অংশগুলির মাধ্যমে র্যান্ডম ট্রেডিংয়ের মাধ্যমে বাস্তবায়িত হয়ঃ

  1. এলোমেলো সংখ্যার উত্পন্ন প্যারামিটার a, c এবং মডুলার m, এবং প্রাথমিক বীজ seed সেট করুন।

  2. GetRandom একটি র্যান্ডম সংখ্যা উৎপন্নকরণ ফাংশন যা 0-m এর মধ্যে একটি র্যান্ডম সংখ্যা উৎপন্ন করতে ব্যবহার করে।

  3. প্রতি কে লাইনে, যদি বর্তমানে কোন অবস্থান না থাকে, তবে তুলনামূলকভাবে উত্পন্ন র্যান্ডম সংখ্যাটি বড়, m / 2 এর চেয়ে বেশি সময়, অন্যথায় খালি।

  4. স্টপ লস স্টপ কন্ডিশন সেট করুন, শতকরা আকারে স্টপ লস এবং স্টপ লস এ্যাম্পিটি সেট করুন।

  5. সময়সীমার মাধ্যমে রিটার্নিং চক্র সেট করুন।

উপরোক্ত ধাপগুলি দ্বারা, এই কৌশলটি সম্পূর্ণরূপে এলোমেলোভাবে একাধিক ক্যোয়ারী অপারেশন সম্পাদন করে। যখন এলোমেলো সংখ্যাটি m / 2 এর চেয়ে বেশি হয় তখন একাধিক আদেশ খোলা হয়, অন্যথায় খালি আদেশ খোলা হয়, এবং তারপরে স্টপ লস স্টপটি পজিশনের বাইরে চলে যায়। পুনরাবৃত্তির সময়কালটি কাস্টমাইজ করা যায়।

সামর্থ্য বিশ্লেষণ

  • এই কৌশলটি সহজ, সুস্পষ্ট এবং সহজেই বোঝা যায়।

  • এলোমেলো ট্রেডিং কার্যকরভাবে মানুষের আবেগগত প্রভাব এড়াতে এবং বিষয়গত ভুল অপারেশন কমাতে পারে।

  • এলোমেলোতা সামঞ্জস্য করার জন্য কাস্টমাইজযোগ্য এলোমেলো সংখ্যা উত্পন্নকরণ অ্যালগরিদম প্যারামিটার।

  • নমনীয়ভাবে স্টপ লস স্টপ কন্ডিশন সেট করুন, একক ক্ষতি নিয়ন্ত্রণ করুন।

  • ফিডব্যাক প্যারামিটার অপ্টিমাইজেশান সমর্থন করে, যা সামগ্রিক উপার্জন উপর বিভিন্ন প্যারামিটার প্রভাব পরীক্ষা করা সহজ করে তোলে।

ঝুঁকি বিশ্লেষণ

  • এলোমেলো লেনদেনের দীর্ঘমেয়াদী প্রবণতা থাকতে পারে এবং আয় অনিশ্চিত।

  • মার্কেটের অবস্থার উপর ভিত্তি করে পজিশনের পরিবর্তন করতে না পারলে, ট্রেন্ডের সুযোগ মিস হতে পারে।

  • একক উপার্জন সীমিত, প্রত্যাহারের ঝুঁকি বেশি।

  • অতিরিক্ত ক্ষতি এড়াতে স্টপ লস স্টপ রেসিপি যুক্তিসঙ্গতভাবে সেট করা দরকার।

  • এলোমেলোতার ফলে প্রায়শই পজিশন খোলার ফলে লেনদেনের খরচ বাড়তে পারে।

  • যাচাইকরণ পরামিতি সেট করার যুক্তিসঙ্গততা সম্পূর্ণরূপে পুনরায় পরীক্ষা করা প্রয়োজন, এটি অন্ধভাবে ব্যবহার করা যাবে না।

প্রবণতা নির্ণয়, র্যান্ডম পোজিশন খোলার সংখ্যা হ্রাস, ক্ষতি বন্ধের প্রক্রিয়াটি অপ্টিমাইজ করা, একক ক্ষতির কঠোর নিয়ন্ত্রণের মতো বৈশিষ্ট্য যুক্ত করে ঝুঁকি হ্রাস করা যায়।

অপ্টিমাইজেশান দিক

  • ট্রেন্ডিংয়ের ক্ষেত্রে সতর্কতা অবলম্বন করা এবং বিপরীতমুখী পজিশন এড়ানো।

  • পজিশন ম্যানেজমেন্টে যোগদান করুন এবং তহবিলের পরিবর্তনের সাথে সাথে পজিশনের আকার পরিবর্তন করুন।

  • এলোমেলো সংখ্যা তৈরির অ্যালগরিদমের অপ্টিমাইজেশান এবং এলোমেলোতা বাড়ানো।

  • ডায়নামিক অ্যাডজাস্টমেন্ট স্টপ লস স্টপ অ্যামেজিং

  • পজিশন খোলার ফ্রিকোয়েন্সি সীমাবদ্ধতা যোগ করা হয়েছে।

  • মাল্টি-প্যারামিটার সমন্বয় ফিডব্যাক সর্বোত্তম প্যারামিটার খুঁজুন

সারসংক্ষেপ

র্যান্ডম ভ্রমন কৌশলটি র্যান্ডম সংখ্যার নিয়ন্ত্রণের মাধ্যমে আরও শূন্যস্থান অর্জন করে যান্ত্রিক বাণিজ্য করে। এই কৌশলটি খুব এলোমেলো, ব্যক্তিগত আবেগের দ্বারা প্রভাবিত হয় না, বিষয়গত ভুল অপারেশনের ঝুঁকি এড়ানো যায়। তবে এলোমেলোভাবে পজিশন খোলার কারণে ট্রেন্ডের সুযোগগুলিও মিস করা যেতে পারে, একক উপার্জন সীমিত, ঝুঁকি নিয়ন্ত্রণ ব্যবস্থাকে অপ্টিমাইজ করা দরকার। সামগ্রিকভাবে, এই কৌশলটি ট্রেডিং ধারণাটি যাচাই করার জন্য উপযুক্ত, উপার্জনের উপর প্যারামিটার সেটিংয়ের প্রভাব বোঝার জন্য, তবে প্রকৃত প্রয়োগটি সতর্কতার সাথে মূল্যায়ন করা দরকার।

কৌশল সোর্স কোড
/*backtest
start: 2022-10-02 00:00:00
end: 2023-10-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//@author=Tr0sT
strategy(title = "Random strategy", shorttitle = "Random", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

a = 16
c = 10
m = 1000
GetRandom(prev) =>
    GetRandom = (a * prev + c) % m

seed = input(200, minval = 2, maxval = m)
stopLoss = input(30, title = "Stop loss percentage(0.1%)")
takeProfit = input(30, title = "Take profit percentage(0.1%)")


curRandom = na
curRandom := nz(curRandom[1]) == 0 ? seed : GetRandom(curRandom[1])
if (strategy.position_size == 0)
    if (curRandom >= m / 2)
        strategy.entry("Enter", strategy.long)
    else
        strategy.entry("Enter", strategy.short)
        
    strategy.exit("Exit", "Enter", loss = close * stopLoss / 1000 / syminfo.mintick, profit = close * takeProfit / 1000 / syminfo.mintick)            

// === Backtesting Dates ===
testPeriodSwitch = input(false, "Custom Backtesting Dates")
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(3, "Backtest Start Month")
testStartDay = input(6, "Backtest Start Day")
testStartHour = input(08, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,0)
testStopYear = input(2018, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(14, "Backtest Stop Day")
testStopHour = input(14, "Backtest Stop Hour")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,testStopHour,0)
testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
isPeriod = testPeriodSwitch == true ? testPeriod() : true
// === /END
if not isPeriod
    strategy.cancel_all()
    strategy.close_all()