এটি বিটকয়েনের জন্য একটি কাস্টম লং / শর্ট ট্রেডিং কৌশল যা সপ্তাহের বিভিন্ন দিনে ব্যাকটেস্টিং দীর্ঘস্থায়ী বা শর্ট করার অনুমতি দেয়। দামটি প্রতি সপ্তাহের দিনে এক দিক বা অন্য দিকে চলতে পারে এবং এই কৌশলটি এটিকে মূলধন করার জন্য বিভিন্ন তারিখের মধ্যে পরীক্ষা করার অনুমতি দেয়।
নিশ্চিত করুন যে আপনি পারফরম্যান্স এবং ট্রেড হিস্ট্রি দেখার সময় দৈনিক সময়সীমার উপর আছেন যাতে স্ক্রিপ্টটি উদ্দেশ্য অনুযায়ী কাজ করে এবং ট্রেডিং ভিউ থেকে আপনার সর্বাধিক ঐতিহাসিক ডেটা রয়েছে।
কৌশলটির মূল যুক্তি হল ব্যবহারকারীকে সপ্তাহের প্রতিটি দিনের জন্য দীর্ঘ, সংক্ষিপ্ত বা কোনও ট্রেডিং বেছে নিতে দেওয়া।
প্রথমত, এটি ব্যবহারকারীকে শুরু মাস, দিন, বছর এবং শেষ মাস, দিন, বছর সহ ব্যাকটেস্টিংয়ের জন্য তারিখের পরিসীমা সেট করতে দেয়।
তারপর, এটি রবিবার 0 থেকে শনিবার 6 পর্যন্ত সপ্তাহের প্রতিটি দিনের সংখ্যাগত উপস্থাপনা সংরক্ষণ করতে একটি অ্যারে টাইমফ্রেম ব্যবহার করে।
আরেকটি অ্যারে timeframes_options প্রতিটি দিনের জন্য দীর্ঘ, সংক্ষিপ্ত বা কোনও ট্রেডিংয়ের পছন্দ সংরক্ষণ করতে ব্যবহৃত হয়। এটি একটি ইনপুট বিকল্পের মাধ্যমে সেট করা হয়।
একটি ফর লুপে, কৌশলটি পরীক্ষা করে যে বর্তমান ট্রেডিং দিনটি টাইমফ্রেম অ্যারেতে একটি দিনের সাথে মেলে কিনা। যদি তাই হয় এবং বিকল্পটি আগের দিন থেকে আলাদা হয় তবে এটি প্রথমে সমস্ত খোলা অবস্থান বন্ধ করে দেয়।
যদি অপশনটি
সুতরাং, কৌশলটি সপ্তাহের প্রতিটি দিনের সেটিংসের উপর ভিত্তি করে নির্ধারিত তারিখের পরিসরে দীর্ঘ / সংক্ষিপ্ত বাণিজ্য করতে পারে।
এই কৌশলটির প্রধান সুবিধা হ'ল অত্যন্ত কাস্টমাইজযোগ্য লং / শর্ট ট্রেডিং। ব্যবহারকারীর সপ্তাহের প্রতিটি দিনের জন্য ট্রেডিং দিকনির্দেশনা বেছে নেওয়ার ক্ষেত্রে সম্পূর্ণ স্বাধীনতা রয়েছে।
ফিক্সড সাপ্তাহিক ট্রেডিং কৌশলগুলির বিপরীতে, এটি নমনীয়ভাবে সামঞ্জস্য করা যায়। খারাপ পারফরম্যান্সের দিনগুলি কেবল অন্যান্য দিনগুলিতে ট্রেড করার জন্য সহজেই সংশোধন করা যেতে পারে।
ব্যাকটেস্টের তারিখের পরিসীমাও অত্যন্ত নমনীয়, যা কোন ব্যবহারকারীর নির্দিষ্ট সময়ের পরীক্ষা করার অনুমতি দেয় যা কোন তারিখের সংমিশ্রণটি সর্বোত্তম সম্পাদন করে তা দেখতে।
ট্রেডিং লজিক খুব পরিষ্কার এবং সহজ, সহজেই বোঝা যায় এবং পরিবর্তন করা যায়। ব্যবহারকারীরা কোডিং ছাড়াই পরামিতিগুলি সামঞ্জস্য করতে পারেন।
কৌশলটি প্রতিদিনের দিক পরিবর্তনের উপর অবস্থানগুলি স্বয়ংক্রিয়ভাবে বন্ধ করে দেয়, অপ্রয়োজনীয় ঝুঁকি এড়ায়।
মূল ঝুঁকি হল যে ব্যবহারকারীর দ্বারা নির্বাচিত দৈনিক ট্রেডিং নির্বাচনগুলি প্রতিটি তারিখের ব্যাপ্তিতে ফিট নাও হতে পারে।
উদাহরণস্বরূপ, সপ্তাহের দিনগুলিতে দীর্ঘ এবং স্বল্প সপ্তাহান্তে কিছু সময়ের জন্য কার্যকর হতে পারে তবে অন্যদের ক্ষেত্রে ব্যর্থ হতে পারে।
সুতরাং তারিখের পরিসীমাগুলি সাবধানে পরীক্ষা করা উচিত, এবং এক ব্যাকটেস্টের ফলাফলের উপর নির্ভর করে না। প্যারামিটার tweaking বাজারের শর্ত বিবেচনা করতে হবে।
আরেকটি ঝুঁকি হ'ল দৈনিক দিক পরিবর্তন করার সময় সময়মতো ক্ষতি কমাতে অক্ষমতা। তবে কৌশলটি স্বয়ংক্রিয়ভাবে বন্ধ করে এটি প্রশমিত করার চেষ্টা করে।
সামগ্রিকভাবে, কৌশলটি ব্যাপকভাবে অপ্টিমাইজেশনের উপর নির্ভরশীল এবং বিভিন্ন বাজারের অবস্থার সাথে মানানসই প্যারামিটার সেটগুলি খুঁজে পেতে পর্যাপ্ত পরীক্ষার প্রয়োজন।
কৌশলটি বিভিন্ন দিক থেকে উন্নত করা যেতে পারে:
প্রতিদিনের দিক পরিবর্তন করার জন্য স্টপ লস লজিক যুক্ত করুন, যখন পজিশনগুলি লাভজনক হয় তখন ড্রডাউন সীমাবদ্ধ করার জন্য ট্রেলিং স্টপ সেট করুন।
একটি ফিল্টার যোগ করুন, শুধুমাত্র নির্দিষ্ট দিনের উচ্চ / নিম্ন ভাঙ্গার উপর সংকেত গ্রহণ করুন, প্রবণতা ছাড়া ট্রেডিং এড়ানো।
ঝুঁকি নিয়ন্ত্রণের জন্য উচ্চ অস্থিরতার সময় পজিশনের আকার হ্রাস করা এবং অস্থিরতা কম হলে বৃদ্ধি করা।
ট্রেডিং ডে'র নির্বাচনে মেশিন লার্নিং যোগ করুন, ঐতিহাসিক তথ্যের উপর ভিত্তি করে প্রতিটি দিনের সম্ভাব্যতা বিচার করুন, গতিশীল দৈনিক দিকনির্দেশ তৈরি করুন।
অপ্রত্যাশিত ঘটনা যেমন বড় খবর মোকাবেলা করার জন্য যুক্তি যোগ করুন ট্রেডিং বন্ধ করে আউটসাইড ধরা এড়ানোর জন্য।
এই কৌশলটি দৈনিক দিক নির্বাচনগুলির মাধ্যমে অত্যন্ত নমনীয় দীর্ঘ / সংক্ষিপ্ত ট্রেডিং ক্ষমতা সরবরাহ করে। ব্যবহারকারীরা সর্বোত্তম পরামিতিগুলির জন্য পরীক্ষাটি অবাধে একত্রিত করতে পারে। তবে এটির উচ্চ অপ্টিমাইজেশান প্রয়োজনীয়তা রয়েছে, বিভিন্ন বাজারের সাথে খাপ খাইয়ে নেওয়ার জন্য বিস্তৃত পরীক্ষার প্রয়োজন। স্টপ, ফিল্টার, গতিশীল সমন্বয়গুলির মতো বর্ধন যুক্ত করা ঝুঁকি হ্রাস করতে এবং স্থিতিশীলতা উন্নত করতে পারে। সতর্ক পরামিতি অপ্টিমাইজেশনের সাথে কৌশলটি একটি কার্যকর দৈনিক দিকনির্দেশক ট্রেডিং সরঞ্জাম হয়ে উঠতে পারে।
/*backtest start: 2022-09-19 00:00:00 end: 2023-09-25 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/ //@version=4 // strategy("Day of Week Custom Buy/Sell Strategy", overlay=true, currency=currency.USD, default_qty_value=1.0,initial_capital=30000.00,default_qty_type=strategy.percent_of_equity) frommonth = input(defval = 6, minval = 01, maxval = 12, title = "From Month") fromday = input(defval = 14, minval = 01, maxval = 31, title = "From day") fromyear = input(defval = 2021, minval = 1900, maxval = 2100, title = "From Year") tomonth = input(defval = 12, minval = 01, maxval = 12, title = "To Month") today = input(defval = 31, minval = 01, maxval = 31, title = "To day") toyear = input(defval = 2100, minval = 1900, maxval = 2100, title = "To Year") timeframes = array.new_int(7, 1) timeframes_options = array.new_string(7, 'None') array.set(timeframes,0,7) array.set(timeframes_options,0, input(defval='None', options=['Long','Short','None'], title='sunday')) array.set(timeframes,1,1) array.set(timeframes_options,1, input(defval='Long', options=['Long','Short','None'], title='monday')) array.set(timeframes,2,2) array.set(timeframes_options,2, input(defval='Long', options=['Long','Short','None'], title='tuesday')) array.set(timeframes,3,3) array.set(timeframes_options,3, input(defval='Long', options=['Long','Short','None'], title='wednesday')) array.set(timeframes,4,4) array.set(timeframes_options,4, input(defval='None', options=['Long','Short','None'], title='thursday')) array.set(timeframes,5,5) array.set(timeframes_options,5, input(defval='None', options=['Long','Short','None'], title='friday')) array.set(timeframes,6,6) array.set(timeframes_options,6, input(defval='None', options=['Long','Short','None'], title='saturday')) for i = 0 to array.size(timeframes) - 1 if dayofweek == array.get(timeframes, i) and array.get(timeframes_options, i) != array.get(timeframes_options, i==0?6:i-1) strategy.close_all() if dayofweek == array.get(timeframes, i) and array.get(timeframes_options, i)!='None' and array.get(timeframes_options, i) != array.get(timeframes_options, i==0?6:i-1) if array.get(timeframes_options, i) == 'Long' strategy.entry("Long", strategy.long, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00))) else if array.get(timeframes_options, i) == 'Short' strategy.entry("Short", strategy.short, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))