ٹائم فریم پاور ٹریڈنگ کی حکمت عملی
ٹائم فریم پاور ٹریڈنگ حکمت عملی ایک حکمت عملی ہے جو ایک دن کے اندر مختلف ٹائم فریموں کے دوران اسٹاک کی قیمت کے رجحان کے نمونوں کا استعمال کرتی ہے۔ اس کا مقصد ایک دن میں 48 آدھے گھنٹے کے ٹائم فریموں میں زیادہ سے زیادہ طویل یا مختصر مواقع کی نشاندہی کرنا ہے۔
اس حکمت عملی کا بنیادی منطق یہ ہے کہ اسٹاک کی قیمتیں دن کے مختلف ادوار کے دوران کچھ نمونوں کی نمائش کرتی ہیں۔ حکمت عملی دن بھر میں 48 آدھے گھنٹے کے ٹائم فریم مرتب کرتی ہے اور اس بات کا تعین کرتی ہے کہ ہر ٹائم فریم کے دوران طویل ، مختصر یا کچھ نہ کریں۔ جب وقت ایک خاص ٹائم فریم میں داخل ہوتا ہے ، اگر ترتیب
مثال کے طور پر ، اگر وقت کا فریم 6:30am - 7:00am پر طے کیا گیا ہے تو ، حکمت عملی 6:30am پر ایک لمبی پوزیشن کھولے گی۔ اگر 7:00am - 7:30am کو
اس حکمت عملی کا فائدہ اس کی صلاحیت میں ہے کہ وہ اسٹاک کی دن کے اندر قیمتوں میں اتار چڑھاؤ کا فائدہ اٹھائے۔ خطرہ یہ ہے کہ ایسے نمونوں میں وقت کے ساتھ ساتھ تبدیلی آسکتی ہے اور حکمت عملی کو غیر موثر بنا دیتی ہے۔
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ اس میں اسٹاک کی
ایک اور فائدہ پیرامیٹر کی تشکیل کی لچک ہے۔ غیر یقینی صورتحال کو کم کرنے کے لئے مختلف اسٹاک کے لئے زیادہ سے زیادہ پیرامیٹر سیٹ استعمال کیے جاسکتے ہیں۔
بنیادی خطرہ مفروضوں کی عدم استحکام سے آتا ہے - اگر کسی اسٹاک کے لئے دن کے اندر قیمت کا نمونہ کافی حد تک بدل جاتا ہے تو ، حکمت عملی کی منافع بخش توقعات متاثر ہوں گی۔ ایسی تبدیلیاں بنیادی تبدیلیوں یا بلیک سوان کے واقعات سے آسکتی ہیں جو مجموعی طور پر مارکیٹ کو متاثر کرتی ہیں۔
اس کے علاوہ ، تجارت کی اعلی تعدد سے لین دین کے اخراجات کے لحاظ سے خطرات پیدا ہوتے ہیں۔ تجارتی حجم کے بغیر ، فیسوں کا جمع ہونا حتمی منافع کو ختم کرسکتا ہے۔
پیرامیٹرز کی متحرک ایڈجسٹمنٹ کے قابل بنانے کے لئے مشین لرننگ ماڈلز متعارف کرانے پر غور کریں - مثال کے طور پر اگلے دور کی قیمتوں کی پیش گوئی کرنے اور اس کے مطابق طویل / مختصر ترتیبات کو ٹھیک کرنے کے لئے LSTM ماڈلز۔
متبادل طور پر، اسٹاک کے بنیادی اصولوں کو اکٹھا کریں تاکہ پیٹرن کی تبدیلی کا امکان معلوم کیا جاسکے، تاکہ حکمت عملی کو چالو کرنے کے لئے بہترین وقت کا تعین کیا جاسکے۔
ٹائم فریم پاور ٹریڈنگ حکمت عملی بار بار آنے والے قیمتوں کے نمونوں کا تجزیہ کرتے وقت مختلف ادوار کے دوران زیادہ سے زیادہ انٹرا ڈے آپریشنز کی نشاندہی کرکے الفا پیدا کرتی ہے۔ لچکدار پیرامیٹر ایڈجسٹمنٹ اور رسک کنٹرول کے ساتھ ، یہ ایک موثر الگو ٹریڈنگ حکمت عملی ہے۔ مستقبل میں اصلاح کے راستوں میں ایم ایل کو اپنانے یا منافع کو بڑھانے اور غیر یقینی صورتحال کے خلاف استحکام کو بڑھانے کے لئے بنیادی امتزاج شامل ہیں۔
/*backtest start: 2023-10-23 00:00:00 end: 2023-11-22 00:00:00 period: 1h 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/ //@version=4 strategy("Timeframe Time of Day Buying and Selling Strategy", overlay=true) 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_string(48, '') timeframes_options = array.new_string(49, 'None') array.set(timeframes,0,'2330-0000') array.set(timeframes_options,0, input(defval='None', options=['Long','Short','None'], title='0000-0030')) array.set(timeframes,1,'0000-0030') array.set(timeframes_options,1, input(defval='Long', options=['Long','Short','None'], title='0030-0100')) array.set(timeframes,2,'0030-0100') array.set(timeframes_options,2, input(defval='Long', options=['Long','Short','None'], title='0100-0130')) array.set(timeframes,3,'0100-0130') array.set(timeframes_options,3, input(defval='Long', options=['Long','Short','None'], title='0130-0200')) array.set(timeframes,4,'0130-0200') array.set(timeframes_options,4, input(defval='Long', options=['Long','Short','None'], title='0200-0230')) array.set(timeframes,5,'0200-0230') array.set(timeframes_options,5, input(defval='None', options=['Long','Short','None'], title='0230-0300')) array.set(timeframes,6,'0230-0300') array.set(timeframes_options,6, input(defval='None', options=['Long','Short','None'], title='0300-0330')) array.set(timeframes,7,'0300-0330') array.set(timeframes_options,7, input(defval='None', options=['Long','Short','None'], title='0330-0400')) array.set(timeframes,8,'0330-0400') array.set(timeframes_options,8, input(defval='None', options=['Long','Short','None'], title='0400-0430')) array.set(timeframes,9,'0400-0430') array.set(timeframes_options,9, input(defval='None', options=['Long','Short','None'], title='0430-0500')) array.set(timeframes,10,'0430-0500') array.set(timeframes_options,10, input(defval='None', options=['Long','Short','None'], title='0500-0530')) array.set(timeframes,11,'0500-0530') array.set(timeframes_options,11, input(defval='None', options=['Long','Short','None'], title='0530-0600')) array.set(timeframes,12,'0530-0600') array.set(timeframes_options,12, input(defval='None', options=['Long','Short','None'], title='0600-0630')) array.set(timeframes,13,'0600-0630') array.set(timeframes_options,13, input(defval='None', options=['Long','Short','None'], title='0630-0700')) array.set(timeframes,14,'0630-0700') array.set(timeframes_options,14, input(defval='None', options=['Long','Short','None'], title='0700-0730')) array.set(timeframes,15,'0700-0730') array.set(timeframes_options,15, input(defval='None', options=['Long','Short','None'], title='0730-0800')) array.set(timeframes,16,'0730-0800') array.set(timeframes_options,16, input(defval='None', options=['Long','Short','None'], title='0800-0830')) array.set(timeframes,17,'0800-0830') array.set(timeframes_options,17, input(defval='None', options=['Long','Short','None'], title='0830-0900')) array.set(timeframes,18,'0830-0900') array.set(timeframes_options,18, input(defval='None', options=['Long','Short','None'], title='0900-0930')) array.set(timeframes,19,'0900-0930') array.set(timeframes_options,19, input(defval='None', options=['Long','Short','None'], title='0930-1000')) array.set(timeframes,20,'0930-1000') array.set(timeframes_options,20, input(defval='None', options=['Long','Short','None'], title='1000-1030')) array.set(timeframes,21,'1000-1030') array.set(timeframes_options,21, input(defval='None', options=['Long','Short','None'], title='1030-1100')) array.set(timeframes,22,'1030-1100') array.set(timeframes_options,22, input(defval='None', options=['Long','Short','None'], title='1100-1130')) array.set(timeframes,23,'1100-1130') array.set(timeframes_options,23, input(defval='None', options=['Long','Short','None'], title='1130-1200')) array.set(timeframes,24,'1130-1200') array.set(timeframes_options,24, input(defval='None', options=['Long','Short','None'], title='1200-1230')) array.set(timeframes,25,'1200-1230') array.set(timeframes_options,25, input(defval='None', options=['Long','Short','None'], title='1230-1300')) array.set(timeframes,26,'1230-1300') array.set(timeframes_options,26, input(defval='None', options=['Long','Short','None'], title='1300-1330')) array.set(timeframes,27,'1300-1330') array.set(timeframes_options,27, input(defval='None', options=['Long','Short','None'], title='1330-1400')) array.set(timeframes,28,'1330-1400') array.set(timeframes_options,28, input(defval='None', options=['Long','Short','None'], title='1400-1430')) array.set(timeframes,29,'1400-1430') array.set(timeframes_options,29, input(defval='None', options=['Long','Short','None'], title='1430-1500')) array.set(timeframes,30,'1430-1500') array.set(timeframes_options,30, input(defval='None', options=['Long','Short','None'], title='1500-1530')) array.set(timeframes,31,'1500-1530') array.set(timeframes_options,31, input(defval='None', options=['Long','Short','None'], title='1530-1600')) array.set(timeframes,32,'1530-1600') array.set(timeframes_options,32, input(defval='None', options=['Long','Short','None'], title='1600-1630')) array.set(timeframes,33,'1600-1630') array.set(timeframes_options,33, input(defval='None', options=['Long','Short','None'], title='1630-1700')) array.set(timeframes,34,'1630-1700') array.set(timeframes_options,34, input(defval='None', options=['Long','Short','None'], title='1700-1730')) array.set(timeframes,35,'1700-1730') array.set(timeframes_options,35, input(defval='None', options=['Long','Short','None'], title='1730-1800')) array.set(timeframes,36,'1730-1800') array.set(timeframes_options,36, input(defval='None', options=['Long','Short','None'], title='1800-1830')) array.set(timeframes,37,'1800-1830') array.set(timeframes_options,37, input(defval='None', options=['Long','Short','None'], title='1830-1900')) array.set(timeframes,38,'1830-1900') array.set(timeframes_options,38, input(defval='None', options=['Long','Short','None'], title='1900-0930')) array.set(timeframes,39,'1900-0930') array.set(timeframes_options,39, input(defval='None', options=['Long','Short','None'], title='1930-2000')) array.set(timeframes,40,'1930-2000') array.set(timeframes_options,40, input(defval='None', options=['Long','Short','None'], title='2000-2030')) array.set(timeframes,41,'2000-2030') array.set(timeframes_options,41, input(defval='None', options=['Long','Short','None'], title='2030-2100')) array.set(timeframes,42,'2030-2100') array.set(timeframes_options,42, input(defval='None', options=['Long','Short','None'], title='2100-2130')) array.set(timeframes,43,'2100-2130') array.set(timeframes_options,43, input(defval='None', options=['Long','Short','None'], title='2130-2200')) array.set(timeframes,44,'2130-2200') array.set(timeframes_options,44, input(defval='None', options=['Long','Short','None'], title='2200-2230')) array.set(timeframes,45,'2200-2230') array.set(timeframes_options,45, input(defval='None', options=['Long','Short','None'], title='2230-2300')) array.set(timeframes,46,'2230-2300') array.set(timeframes_options,46, input(defval='None', options=['Long','Short','None'], title='2300-2330')) array.set(timeframes,47,'2300-2330') array.set(timeframes_options,47, input(defval='None', options=['Long','Short','None'], title='2330-0000')) string_hour = hour<10?'0'+tostring(hour):tostring(hour) string_minute = minute<10?'0'+tostring(minute):tostring(minute) current_time = string_hour+string_minute f_strLeft(_str, _n) => string[] _chars = str.split(_str, "") int _len = array.size(_chars) int _end = min(_len, max(0, _n)) string[] _substr = array.new_string(0) if _end <= _len _substr := array.slice(_chars, 0, _end) string _return = array.join(_substr, "") f_strRight(_str, _n) => string[] _chars = str.split(_str, "") int _len = array.size(_chars) int _beg = max(0, _len - _n) string[] _substr = array.new_string(0) if _beg < _len _substr := array.slice(_chars, _beg, _len) string _return = array.join(_substr, "") for i = 0 to array.size(timeframes) - 1 start_time = f_strLeft(array.get(timeframes, i), 4) end_time = f_strRight(array.get(timeframes, i), 4) if current_time == end_time and array.get(timeframes_options, i)!='None' and array.get(timeframes_options, i) != array.get(timeframes_options, i==47?0:i+1) and timestamp(toyear, tomonth, today, 00, 00) strategy.close_all() if current_time == start_time and array.get(timeframes_options, i)!='None' and array.get(timeframes_options, i) != array.get(timeframes_options, i==0?47: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)))