
یہ حکمت عملی ایک رجحان ٹریکنگ گرڈ حکمت عملی ہے جس میں صرف زیادہ کام کیا جاتا ہے اور خالی نہیں ہوتا ہے ، بڑے رجحانات کے اوقات کا انتخاب کیا جاتا ہے۔ ڈیفالٹ گرڈ کا سائز 1 گنا اے ٹی آر ہے ، نیچے کی طرف سے ٹریکنگ 1 ، 2 ، 3 درجے کے گرڈ قائم کرتا ہے ، اور 5 ویں گرڈ کو روکتا ہے۔ جب خالی پوزیشن میں قیمت ایک گرڈ کو توڑ دیتی ہے تو ، پورا گرڈ اوپر کی طرف بڑھ جاتا ہے۔
یہ حکمت عملی ای ایم اے کے ذریعہ بڑے رجحان کی سمت کا تعین کرتی ہے ، پھر گرڈ حکمت عملی کے ساتھ مل کر اس کی پیروی کی جاتی ہے ، جس سے بڑے رجحان کی سمت میں زیادہ سے زیادہ منافع حاصل کیا جاسکتا ہے۔ گرڈ میں متعدد قیمت پوائنٹس مرتب کیے گئے ہیں ، اور اس میں ایک ہی پوزیشن کا خطرہ کم کیا جاسکتا ہے۔ سٹاپ نقصان کی ترتیب منافع کو مقفل کرنے اور زیادہ سے زیادہ نقصان کو کنٹرول کرنے کی اجازت دیتی ہے۔ جب پوزیشن مکمل طور پر کھل جاتی ہے تو ، گرڈ کی اونچائی کا دوبارہ حساب کتاب کیا جاسکتا ہے ، اور پھر سے پوزیشن کھولنے کے قابل ہوجاتا ہے ، اس طرح منافع کو زیادہ سے زیادہ کیا جاسکتا ہے۔
اس حکمت عملی کا بنیادی فائدہ یہ ہے کہ رجحان ٹریڈنگ اور گرڈ ٹریڈنگ کو جوڑنا ہے ، جس سے رجحان کی سمت کی درستگی کو یقینی بنایا جاتا ہے اور گرڈ حکمت عملی کے خطرے کو تقسیم کیا جاتا ہے۔ اس کے علاوہ ، پوزیشن کی صفائی کے بعد گرڈ کا دوبارہ حساب لگانا لامحدود واپسی کا باعث بنتا ہے ، جس سے مارکیٹ میں ایک بڑی لہر آنے پر بہت زیادہ رقم ملتی ہے۔
بنیادی خطرہ یہ ہے کہ بڑے رجحان کا غلط فیصلہ کیا جائے ، جس سے معکوس پوزیشن کی تعمیر اور بڑے پیمانے پر نقصان کا سبب بنے گا۔ اس کے علاوہ ، اگر مارکیٹ میں شدید جھٹکا پڑتا ہے تو ، متعدد گرڈ ایک ساتھ قید ہوجاتے ہیں تو نقصان بڑھ جاتا ہے۔ اس کے علاوہ ، قیمتوں میں تیزی سے کمی کی وجہ سے اسٹاپ نقصان بھی ہوتا ہے۔ اس کے نتیجے میں پوزیشنوں کو مکمل طور پر صاف کرنا ، اس کے بعد منافع حاصل کرنے کا موقع ضائع کرنا۔ قیمت کی واپسی کے بعد ، ابتدائی بہترین گرڈ پوزیشن میں دوبارہ داخل ہونا مشکل ہے۔
ای ایم اے پیرامیٹرز کو بہتر بنانے کے ذریعہ بڑے رجحانات کی درستگی کو بہتر بنایا جاسکتا ہے۔ گرڈ کے فاصلے اور پہلی بار کی تعداد کو ایڈجسٹ کرنے سے مجموعی نقصان کو بھی کنٹرول کیا جاسکتا ہے۔ اسٹاپ نقصان کی پوزیشن کی ترتیب کو مارکیٹ کی اتار چڑھاؤ کی فریکوئنسی کو مدنظر رکھنے کی ضرورت ہے۔ اس کے علاوہ ، یہ بھی غور کیا جاسکتا ہے کہ کچھ پوزیشنوں کو منافع بخش ہونے کے بعد ہی بند کردیا گیا ہے ، نہ کہ پوری پوزیشن کو صاف کرنا۔
اس حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:
ان اصلاحات کے ذریعہ ، حکمت عملی کو بڑے پیمانے پر منافع حاصل کرنے کے قابل بنایا جاسکتا ہے ، جبکہ خطرے کو کنٹرول کیا جاسکتا ہے اور معمول کے زلزلے کے دوران ہونے والے نقصانات کو کم کیا جاسکتا ہے۔
یہ حکمت عملی رجحان ٹریڈنگ اور گرڈ ٹریڈنگ کا ایک نامیاتی امتزاج ہے۔ یہ ای ایم اے کا استعمال کرتا ہے جس میں بڑی سمت کا تعین کیا جاتا ہے ، پھر گرڈ حکمت عملی کے ساتھ پوزیشنوں کو ڈھیر لگایا جاتا ہے۔ خطرے پر قابو پانے کے لئے ، اسٹاپ نقصان کو روکنے اور گرڈ کا دوبارہ حساب لگانے کے لئے ٹریکنگ میکانزم موجود ہے۔ مجموعی طور پر ، حکمت عملی مارکیٹ میں بڑے رجحانات میں اچھی منافع حاصل کرنے کے قابل ہے ، جبکہ خطرے پر بھی قابو پایا جاتا ہے۔ اگر پیرامیٹرز کو مزید بہتر بنایا جائے اور فیصلہ کی درستگی کو بہتر بنایا جائے تو ، آمدنی زیادہ قیمتی ہوسکتی ہے۔
/*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/
// © zxcvbnm3260
//@version=5
strategy("grid strategy long", overlay=true)
// 版本更新记录:
// v1.0 2021/11/09 只做多、不做空,选择大趋势向上的时间段。网格大小默认为1倍ATR,往下1、2、3个网格吃单,第5个网格止损。空仓时到达往上一个网格则网格整体抬升。(Only go long, not short, choose a time period when the general trend is up. The default grid size is 1x ATR, the next one, two, and three grids will take orders, and the fifth grid will stop loss. When the empty position reaches the upper grid, the grid as a whole rises.)
X_ATR = input.float(title='网格大小是多少倍ATR?', defval = 1)
// 1.基础变量
ema169 = ta.ema(close, 169)
ema144 = ta.ema(close, 144)
ema12 = ta.ema(close, 12)
ema576 = ta.ema(close, 576)
ema676 = ta.ema(close, 676)
plot(ema169, color=color.new(color.orange, 0), linewidth=2)
// plot(ema144, color=color.orange)
plot(ema12, color=color.blue)
// plot(ema676, color=color.orange, linewidth=1)
mtr = math.max(high - low, math.abs(close[1] - high), math.abs(close[1] - low))
atr = ta.ema(mtr, 30)
is_0930 = hour(time, 'GMT-4') == 9 and minute(time, 'GMT-4') == 30
is_1500 = hour(time, 'GMT-4') == 15 and minute(time, 'GMT-4') == 00
is_1530 = hour(time, 'GMT-4') == 15 and minute(time, 'GMT-4') == 30
is_yangxian = close>open
is_yinxian = close<open
// 2.基本趋势标记
big_trend = ema12 >= ema169 ? 1 : 0
big_trend2 = ema12 <= ema169 ? 1 : 0
// 背景的变色处理:
bgcolor(big_trend == 1 ? color.new(color.green, 90) : color.new(color.red, 90) )
// 3.网格点位初始化
grid_size = atr * X_ATR // 网格大小
price_entry1 = open - grid_size*1
price_entry2 = open - grid_size*2
price_entry3 = open - grid_size*3
price_stop_loss = open - grid_size*5
price_exit1 = price_entry1 + grid_size*1
price_exit2 = price_entry2 + grid_size*1
price_exit3 = price_entry3 + grid_size*1
qty1 = int(1000/price_entry1)
qty2 = int(1000/price_entry2)
qty3 = int(1000/price_entry3)
// 标出各种点位
slm_lines_time(time, price_entry1, price_entry2, price_entry3, price_stop_loss, price_exit1)=>
time2 = time + 1000*3600*24*5
line.new(time, price_stop_loss, time2, price_stop_loss, color=color.red, xloc = xloc.bar_time, width=2) // 止损位
line.new(time, price_entry1, time2, price_entry1, color=color.green, xloc = xloc.bar_time) //
line.new(time, price_entry2, time2, price_entry2, color=color.green, xloc = xloc.bar_time) //
line.new(time, price_entry3, time2, price_entry3, color=color.green, xloc = xloc.bar_time) //
line.new(time, price_exit1, time2, price_exit1, color=color.green, xloc = xloc.bar_time, width=2) //
slm_lines(time, price_entry1, price_entry2, price_entry3, price_stop_loss, price_exit1)=>
line.new(bar_index, price_stop_loss, bar_index[5], price_stop_loss, color=color.red, xloc = xloc.bar_index, width=2) // 止损位
line.new(bar_index, price_entry1, bar_index[5], price_entry1, color=color.green, xloc = xloc.bar_index) //
line.new(bar_index, price_entry2, bar_index[5], price_entry2, color=color.green, xloc = xloc.bar_index) //
line.new(bar_index, price_entry3, bar_index[5], price_entry3, color=color.green, xloc = xloc.bar_index) //
line.new(bar_index, price_exit1, bar_index[5], price_exit1, color=color.green, xloc = xloc.bar_index, width=2) //
// 4.网格点位更新和下单
is_entry0 = big_trend==1 and year>=2020
var is_entry = false
// 未进场时:
if is_entry0 and not is_entry
is_entry := true
grid_size := atr * X_ATR // 网格大小
price_entry1 := close - grid_size*1
price_entry2 := close - grid_size*2
price_entry3 := close - grid_size*3
price_stop_loss := close - grid_size*5
price_exit1 := price_entry1 + grid_size*1
price_exit2 := price_entry2 + grid_size*1
price_exit3 := price_entry3 + grid_size*1
qty1 := int(1000/price_entry1)
qty2 := int(1000/price_entry2)
qty3 := int(1000/price_entry3)
// slm_lines(time, price_entry1, price_entry2, price_entry3, price_stop_loss, price_exit1)
strategy.entry("open1", strategy.long, qty1, limit = price_entry1)
strategy.entry("open2", strategy.long, qty2, limit = price_entry2)
strategy.entry("open3", strategy.long, qty3, limit = price_entry3)
strategy.exit("close1", qty = qty1, limit = price_exit1, stop = price_stop_loss)
strategy.exit("close2", qty = qty2, limit = price_exit2, stop = price_stop_loss)
strategy.exit("close3", qty = qty3, limit = price_exit3, stop = price_stop_loss)
// 已进场的各类情况
// 1.止损
if is_entry and close <= price_stop_loss
strategy.close_all()
is_entry := false
// 2.网格抬升
if is_entry and close >= price_exit1
is_entry := false