এই কৌশলটি ব্রেকআউট উচ্চ এবং নিম্ন মূল্য নির্ধারণ করে ক্রিপ্টোকারেন্সির দামের প্রবণতা ট্র্যাক করে। যখন দাম সর্বোচ্চ দামের উপরে ভেঙে যায় তখন এটি দীর্ঘ হয় এবং প্রবণতা ক্যাপচার করার জন্য যখন দাম সর্বনিম্ন দামের নীচে ভেঙে যায় তখন এটি শর্ট হয়।
এই কৌশলটি মূলত ওজনযুক্ত চলমান গড় পদ্ধতি ব্যবহার করে এটি নির্ধারণ করতে যে কোনও সুস্পষ্ট ঊর্ধ্বমুখী বা নিম্নমুখী প্রবণতা রয়েছে কিনা। বিশেষত, এটি একটি নির্দিষ্ট সময়ের মধ্যে সর্বোচ্চ এবং সর্বনিম্ন মূল্য রেকর্ড করবে। যখন প্রকৃত ট্রেডিং মূল্য রেকর্ড করা সর্বোচ্চ মূল্য ছাড়িয়ে যায়, তখন এটি একটি ঊর্ধ্বমুখী প্রবণতা ঘটেছে বলে বিচার করা হয় এবং এটি দীর্ঘ হবে। যখন প্রকৃত ট্রেডিং মূল্য রেকর্ড করা সর্বনিম্ন মূল্যের চেয়ে কম হয়, তখন এটি একটি নিম্নমুখী প্রবণতা ঘটেছে বলে বিচার করা হয় এবং এটি সংক্ষিপ্ত হবে।
লং এবং শর্টের জন্য খোলার দামগুলি
বিশেষ করে, কৌশলটির মূল যুক্তি হলঃ
এই লজিক লুপের মাধ্যমে, এটি মূল্যের ঊর্ধ্বমুখী এবং নিম্নমুখী প্রবণতা ধরে রাখতে পারে এবং প্রবণতা অনুসরণ করতে পারে।
এই কৌশলটির সবচেয়ে বড় সুবিধা হ'ল প্যারামিটারগুলি সামঞ্জস্য করে এটি প্রবণতার দিকনির্দেশের ম্যানুয়াল বিচারের প্রয়োজন ছাড়াই স্বয়ংক্রিয়ভাবে মূল্যের প্রবণতা ক্যাপচার করতে পারে। যতক্ষণ প্যারামিটারগুলি যথাযথভাবে সেট করা থাকে ততক্ষণ এটি স্বয়ংক্রিয়ভাবে ক্রিপ্টোকারেন্সিগুলির দামের হ্রাসকে ট্র্যাক করতে পারে।
উপরন্তু, এই কৌশল পরিমাণগত ট্রেডিং জন্য খুব উপযুক্ত এবং সহজেই স্বয়ংক্রিয় অর্ডার স্থাপন অর্জন করতে পারেন। ম্যানুয়াল অপারেশন ছাড়া, এটি মানসিক ট্রেডিং ঝুঁকি হ্রাস এবং ব্যাপকভাবে ট্রেডিং দক্ষতা উন্নত।
অবশেষে, এই কৌশলটি প্যারামিটারগুলি সামঞ্জস্য করে রিটার্নগুলিকে সর্বাধিক করতে পারে। বিভিন্ন এন্ট্রি এবং এক্সআইটি প্যারামিটারগুলি পরীক্ষা করে, সর্বোত্তম প্যারামিটারগুলি পাওয়া যায় যা রিটার্নগুলিকে সর্বাধিক করে তোলে।
এই কৌশলটির সবচেয়ে বড় ঝুঁকি হ'ল অনুপযুক্ত পরামিতি সেটিংগুলি অত্যধিক ঘন ঘন ট্রেডিংয়ের দিকে পরিচালিত করতে পারে, ট্রেডিং ফি বাড়িয়ে তুলতে পারে এবং স্লিপিংয়ের ক্ষতি হতে পারে। যদি ENTRY খুব কম এবং EXIT খুব বেশি সেট করা হয় তবে মিথ্যা ট্রেডিং সংকেতগুলি সহজেই উত্পন্ন হয়।
উপরন্তু, অনুপযুক্ত পরামিতি টিউনিং সময়মতো মূল্য প্রবণতা ক্যাপচার করতে ব্যর্থ হতে পারে, ট্রেডিং সুযোগগুলি মিস করতে পারে। এটি সর্বোত্তম পরামিতিগুলি খুঁজে পেতে প্রচুর ব্যাকটেস্টিংয়ের প্রয়োজন।
অবশেষে, এই কৌশলটি স্বল্পমেয়াদী বাজারের গোলমালের জন্য খুব সংবেদনশীল, যা ভুল ট্রেডিং সংকেত তৈরি করতে পারে। ট্রেডিং টাইমসাইকেল পরামিতিগুলি যথাযথভাবে সেট করে এটি এড়ানো দরকার।
এই কৌশলটির জন্য নিম্নলিখিত দিকগুলি আরও অপ্টিমাইজ করা যেতে পারেঃ
স্টপ লস লজিক যোগ করুন। এটি বড় ক্ষতি এড়াতে ক্ষতির একটি নির্দিষ্ট শতাংশ অতিক্রম করার সময় ক্ষতি বন্ধ করতে দেয়।
স্বল্পমেয়াদী গোলমালের কারণে খুব বেশি ট্রেডিং এড়ানোর জন্য সামগ্রিক প্রবণতা বিচার করার জন্য চলমান গড়, কেডিজে এর মতো প্রযুক্তিগত সূচক ফিল্টার যুক্ত করুন।
প্যারামিটার সেটিং লজিক অপ্টিমাইজ করুন। স্ট্যাটিক সেটিংয়ের পরিবর্তে এন্ট্রি এবং এক্সআইটি প্যারামিটারগুলির জন্য অভিযোজিত পরিবর্তন প্রক্রিয়াটি সেট করা যেতে পারে যাতে তারা বাজারের অবস্থার উপর ভিত্তি করে সামঞ্জস্য করতে পারে।
মেশিন লার্নিং ব্যবহার করে সর্বোত্তম পরামিতি প্রশিক্ষণ। ব্যাপক ঐতিহাসিক ডেটা প্রশিক্ষণের মাধ্যমে বর্তমান বাজারের পরিবেশের জন্য সর্বোত্তম এন্ট্রি এবং EXIT সেটিংস পান।
এই কৌশলটির সবচেয়ে বড় সুবিধা হ'ল দামের প্রবণতা ক্যাপচার করে এটি স্বয়ংক্রিয় ট্রেডিং অর্জন করে, যা ট্রেডিংয়ে মানুষের আবেগগুলির প্রভাব হ্রাস করতে পারে, ঝুঁকি হ্রাস করতে পারে এবং দক্ষতা বাড়িয়ে তুলতে পারে। একই সাথে, প্যারামিটারগুলি সামঞ্জস্য করে সর্বোত্তম মুনাফা পয়েন্টগুলি পাওয়া যায়।
কৌশলটির প্রধান ঝুঁকিগুলি হ'ল অনুপযুক্ত পরামিতি সেটিং এবং বাজারের গোলমালের প্রতি অত্যধিক সংবেদনশীলতা। স্টপ লস, সূচক ফিল্টার, অভিযোজিত পরামিতি অপ্টিমাইজেশন এবং আরও অনেক কিছুর মাধ্যমে এটি উন্নত করা দরকার।
সামগ্রিকভাবে, এটি পরিমাণগত এবং স্বয়ংক্রিয় ট্রেডিংয়ের জন্য উপযুক্ত কৌশল অনুসরণ করে একটি সহজ এবং কার্যকর প্রবণতা। ক্রমাগত অপ্টিমাইজেশান দ্বারা, কৌশলটির স্থিতিশীলতা আরও উন্নত করা যেতে পারে।
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h 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/ // © JstMtlQC //@version=4 strategy("Trend Following Breakout",calc_on_order_fills=true,calc_on_every_tick =false, overlay=true, initial_capital=2000,commission_value=.1,default_qty_type = strategy.percent_of_equity, default_qty_value = 100) /////////////// INPUT ENTRY EXIT entry= input(100, "ENTRY H/L") exit= input(50, "EXIT H/L") /////////////// Backtest Input FromYear = input(2015, "Backtest Start Year") FromMonth = input(1, "Backtest Start Month") FromDay = input(1, "Backtest Start Day") ToYear = input(2999, "Backtest End Year") ToMonth = input(1, "Backtest End Month") ToDay = input(1, "Backtest End Day") /////////////// Backtest Setting start = timestamp(FromYear, FromMonth, FromDay, 00, 00) finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) window() => time >= start and time <= finish ? true : false /////////////// BUY OPEN PLOT highestpricelong = highest(high,entry)[1] plot(highestpricelong, color=color.green, linewidth=2) /////////////// BUY CLOSE PLOT lowestpricelong = lowest(high,exit)[1] plot(lowestpricelong, color=color.green, linewidth=2) /////////////// SHORT OPEN PLOT lowestpriceshort = lowest(low,entry)[1] plot(lowestpriceshort, color=color.red, linewidth=2) /////////////// SHORT CLOSE PLOT highestpriceshort = highest(low,exit)[1] plot(highestpriceshort, color=color.red, linewidth=2) /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////// CONDITION LONG SHORT ////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// /////////////// SHORT entryshort= crossunder(close, lowestpriceshort) exitshort= crossover(close,highestpriceshort) /////////////// LONG exitlong= crossover(close, lowestpricelong) entrylong= crossover(close,highestpricelong) /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////// LONG and SHORT ORDER ////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// /////////////// LONG if (entrylong) strategy.entry("LongEntry", strategy.long, when = window()) if (exitlong or entryshort) strategy.close("LongEntry", when=window()) /////////////// SHORT if (entryshort) strategy.entry("short", strategy.short, when = window()) if (exitshort or entrylong) strategy.close("short", when=window())