ٹائم فریم پاور ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-23 15:32:00
ٹیگز:

ٹائم فریم پاور ٹریڈنگ کی حکمت عملی

جائزہ

ٹائم فریم پاور ٹریڈنگ حکمت عملی ایک حکمت عملی ہے جو ایک دن کے اندر مختلف ٹائم فریموں کے دوران اسٹاک کی قیمت کے رجحان کے نمونوں کا استعمال کرتی ہے۔ اس کا مقصد ایک دن میں 48 آدھے گھنٹے کے ٹائم فریموں میں زیادہ سے زیادہ طویل یا مختصر مواقع کی نشاندہی کرنا ہے۔

حکمت عملی منطق

اس حکمت عملی کا بنیادی منطق یہ ہے کہ اسٹاک کی قیمتیں دن کے مختلف ادوار کے دوران کچھ نمونوں کی نمائش کرتی ہیں۔ حکمت عملی دن بھر میں 48 آدھے گھنٹے کے ٹائم فریم مرتب کرتی ہے اور اس بات کا تعین کرتی ہے کہ ہر ٹائم فریم کے دوران طویل ، مختصر یا کچھ نہ کریں۔ جب وقت ایک خاص ٹائم فریم میں داخل ہوتا ہے ، اگر ترتیب long ہے تو ، یہ ایک لمبی پوزیشن کھولے گی۔ اگر ترتیب short ہے تو ، یہ ایک مختصر پوزیشن کھولے گی۔ ہر ٹائم فریم کے اختتام پر ، یہ اگلے ٹائم فریم کی آپریشن کی قسم کی جانچ پڑتال کرتا ہے۔ اگر یہ موجودہ کے برابر ہے تو ، یہ پوزیشن کو برقرار رکھے گا۔ اگر مختلف ہے تو ، یہ ٹائم فریم ختم ہونے سے پہلے ہی پوزیشن بند کردے گا۔

مثال کے طور پر ، اگر وقت کا فریم 6:30am - 7:00am پر طے کیا گیا ہے تو ، حکمت عملی 6:30am پر ایک لمبی پوزیشن کھولے گی۔ اگر 7:00am - 7:30am کو short پر طے کیا گیا ہے تو ، یہ 7am سے پہلے لمبی پوزیشنیں بند کرے گا اور 7am پر مختصر پوزیشنیں کھولے گا۔

اس حکمت عملی کا فائدہ اس کی صلاحیت میں ہے کہ وہ اسٹاک کی دن کے اندر قیمتوں میں اتار چڑھاؤ کا فائدہ اٹھائے۔ خطرہ یہ ہے کہ ایسے نمونوں میں وقت کے ساتھ ساتھ تبدیلی آسکتی ہے اور حکمت عملی کو غیر موثر بنا دیتی ہے۔

فوائد کا تجزیہ

اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ اس میں اسٹاک کی قیمتیں صحیح ہیں خصوصیت کا استعمال ہوتا ہے - قیمتوں میں دن کے مختلف اوقات میں مختلف اوسط اور تغیر ہوتا ہے۔ اس سے حکمت عملی کو مستحکم ادوار کے دوران رینج ٹریڈنگ کی حکمت عملی اور مستحکم ادوار کے دوران ٹرینڈ ٹریڈنگ کی حکمت عملی اپنانے کی اجازت ملتی ہے تاکہ مارکیٹ کے مختلف حالات کو ایڈجسٹ کیا جاسکے۔

ایک اور فائدہ پیرامیٹر کی تشکیل کی لچک ہے۔ غیر یقینی صورتحال کو کم کرنے کے لئے مختلف اسٹاک کے لئے زیادہ سے زیادہ پیرامیٹر سیٹ استعمال کیے جاسکتے ہیں۔

خطرے کا تجزیہ

بنیادی خطرہ مفروضوں کی عدم استحکام سے آتا ہے - اگر کسی اسٹاک کے لئے دن کے اندر قیمت کا نمونہ کافی حد تک بدل جاتا ہے تو ، حکمت عملی کی منافع بخش توقعات متاثر ہوں گی۔ ایسی تبدیلیاں بنیادی تبدیلیوں یا بلیک سوان کے واقعات سے آسکتی ہیں جو مجموعی طور پر مارکیٹ کو متاثر کرتی ہیں۔

اس کے علاوہ ، تجارت کی اعلی تعدد سے لین دین کے اخراجات کے لحاظ سے خطرات پیدا ہوتے ہیں۔ تجارتی حجم کے بغیر ، فیسوں کا جمع ہونا حتمی منافع کو ختم کرسکتا ہے۔

اصلاح کی ہدایات

پیرامیٹرز کی متحرک ایڈجسٹمنٹ کے قابل بنانے کے لئے مشین لرننگ ماڈلز متعارف کرانے پر غور کریں - مثال کے طور پر اگلے دور کی قیمتوں کی پیش گوئی کرنے اور اس کے مطابق طویل / مختصر ترتیبات کو ٹھیک کرنے کے لئے 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)))


مزید