موافقت پذیر اوسط حرکت پذیر حکمت عملی کے بعد رجحان

مصنف:چاؤ ژانگ، تاریخ: 2023-10-10 15:21:45
ٹیگز:

جائزہ

یہ حکمت عملی تیزی سے اور سست حرکت پذیر اوسط کے مابین کراس اوور پر مبنی تجارتی سگنل تیار کرتی ہے ، جو رجحان کی پیروی کرنے والی حکمت عملیوں سے تعلق رکھتی ہے۔ متحرک طور پر حرکت پذیر اوسط پیرامیٹرز کو ایڈجسٹ کرکے ، یہ زیادہ سے زیادہ منافع کے ل dynamically متحرک طور پر مارکیٹ کے رجحان کو اپناتا ہے۔

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

  1. تیز رفتار اور سست حرکت پذیر اوسط کا حساب لگائیں۔ تیز رفتار ایم اے ڈیفالٹ لمبائی 21 ہے ، اور سست ایم اے ڈیفالٹ لمبائی 34 ہے۔

  2. جب تیز رفتار ایم اے سست رفتار ایم اے کو عبور کرتا ہے تو ، یہ ایک اپ ٹرینڈ کی نشاندہی کرتا ہے اور خریدنے کا اشارہ پیدا کرتا ہے۔

  3. جب تیز رفتار ایم اے سست رفتار ایم اے سے نیچے گزرتا ہے، تو یہ ایک نیچے کا رجحان ظاہر کرتا ہے اور فروخت کا اشارہ پیدا کرتا ہے۔

  4. حرکت پذیر اوسط کی لمبائی کو خود بخود ایڈجسٹ کرکے، حکمت عملی منافع کی نگرانی کے لئے مارکیٹ کے رجحان کے مطابق خود کو متحرک طور پر اپناتا ہے.

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

  1. حکمت عملی سادہ اور واضح ہے، سمجھنے اور لاگو کرنے میں آسان ہے.

  2. یہ مارکیٹ کے رجحانات کو مؤثر طریقے سے بڑی منافع کی صلاحیت کے ساتھ ٹریک کرسکتا ہے۔

  3. متحرک پیرامیٹر ایڈجسٹمنٹ مارکیٹ کے حالات کی تبدیلیوں کے مطابق ہے.

  4. اپنی مرضی کے مطابق MA الگورتھم حکمت عملی لچک میں اضافہ.

  5. لچکدار خرید و فروخت منطق کی ترتیب.

خطرے کا تجزیہ

  1. کثرت سے تجارت سے لین دین کے اخراجات زیادہ ہوتے ہیں۔

  2. ایم اے تاخیر اتار چڑھاؤ والے بازاروں کے دوران بہترین اندراج اور باہر نکلنے کے مقامات کو یاد کر سکتی ہے۔

  3. غیر مناسب ایم اے پیرامیٹر اور ایڈجسٹمنٹ فریکوئنسی کی اصلاح حکمت عملی کی ناکامی کا سبب بنتی ہے.

  4. نقصانات کو محدود کرنے کے لئے سخت سٹاپ نقصان کی ضرورت ہے۔

  5. رجحان کا الٹ جانا بہت بڑے فلوٹنگ نقصانات کا باعث بن سکتا ہے۔

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

  1. بہتر رجحان تبدیلی کا پتہ لگانے کے لئے ایم اے پیرامیٹرز کو بہتر بنائیں.

  2. ایک ہی تجارت کے نقصان کو کنٹرول کرنے کے لئے سٹاپ نقصان منطق شامل کریں.

  3. رجحانات کو تبدیل کرنے کے نقصانات سے بچنے کے لئے رجحانات کا اندازہ کرنے والے اشارے شامل کریں.

  4. ایم اے ایڈجسٹمنٹ کی حکمت عملی کو بہتر بنائیں تاکہ زیادہ ذہین اور خودکار ہو۔

  5. مشین لرننگ کا استعمال کرتے ہوئے پیرامیٹر اصلاح ماڈیول شامل کریں.

خلاصہ

حکمت عملی کا منطق آسان اور واضح ہے ، جو تیز اور سست ایم اے کراس اوور پر مبنی تجارت پیدا کرتی ہے۔ یہ مؤثر طریقے سے رجحانات کو پکڑتا ہے لیکن اس میں خطرات ہیں۔ پیرامیٹرز پر مسلسل اصلاح ، اسٹاپ نقصان کا منطق حکمت عملی کو زیادہ مضبوط بنانے کے لئے ضروری ہے۔ مجموعی طور پر حکمت عملی میں بہتری کی بڑی صلاحیت ہے اور اس کی تحقیق اور اطلاق کے قابل ہے۔


/*backtest
start: 2022-10-03 00:00:00
end: 2023-10-09 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//
// @version=4
// © Ehsan Haghpanah, (ehsanha)
// Algorithmic Trading Research
//
// eha Moving Averages Strategy, 
// A simple strategy based on crossing Moving Averages of 
// different lengths (a fast moving average and slow one)
//

strategy(title = "eha Moving Averages Strategy", shorttitle = "eha MA Strategy", overlay = true)

// 
// -- strategy parameter(s)
// moving averages parameter(s)
var _fastMA_len  = input(title = "Fast MA Length",  defval = 21,    type = input.integer, minval = 1, step = 1)
var _slowMA_len  = input(title = "Slow MA Length",  defval = 34,    type = input.integer, minval = 1, step = 1)
var _ma_algo_id  = input(title = "MA Algorithm",    defval = "SMA", options = ["SMA", "EMA", "WMA"])
// backtesting date and time range parameter(s)
var _startYear   = input(defval = 2020, title = "Start Year",  type = input.integer, minval = 1976)
var _startMonth  = input(defval = 1,    title = "Start Month", type = input.integer, minval = 1, maxval = 12)
var _startDay    = input(defval = 1,    title = "Start Day",   type = input.integer, minval = 1, maxval = 31)
var _closeYear   = input(defval = 2020, title = "Close Year",  type = input.integer, minval = 1984)
var _closeMonth  = input(defval = 9,    title = "Close Month", type = input.integer, minval = 1, maxval = 12)
var _closeDay    = input(defval = 1,    title = "Close Day",   type = input.integer, minval = 1, maxval = 31)

//
// -- function(s) and calculation(s)
// checks whether current time is in backtesting time range
start_t = timestamp(_startYear, _startMonth, _startDay, 00, 00)     // backtesting range start time, (00, 00); (hour, minute)
close_t = timestamp(_closeYear, _closeMonth, _closeDay, 23, 59)     // backtesting range close time, (23, 59); (hour, minute)
isInRange() => true
//
// calculates moving average based on provided algorithm, source and length
// alg : moving average algorithm
// len : length
// ser : series
calcMA(alg, len, ser) =>
    (len == 0) ? ser : ((alg == "SMA") ? sma(ser, len) : ((alg == "EMA") ? ema(ser, len) : (alg == "WMA" ? wma(ser, len) : na)))

//
// -- strategy logic and calculation(s)
ma_fast  = calcMA(_ma_algo_id, _fastMA_len, close)
ma_slow  = calcMA(_ma_algo_id, _slowMA_len, close)
cross_ov = crossover (ma_fast, ma_slow) // returns true if fastMA crosses over slowMA
cross_un = crossunder(ma_fast, ma_slow) // returns true if slowMA crosses over fastMA

//
// -- strategy execution logic
// opens a long position whenever the time is in range and crosses over
strategy.entry("ID", comment = "-", long = strategy.long, when = isInRange() and cross_ov)
// closes the position whenever the time is in range and crosses under
strategy.close("ID", comment = "-", when = isInRange() and cross_un)

//
// -- drawing and visualization
co_fast = color.new(color.gray, 25)
co_slow = color.new(color.gray, 75)
// drawing moving average(s)
plot(ma_fast, color = co_fast, linewidth = 2, style = plot.style_line)
plot(ma_slow, color = co_slow, linewidth = 3, style = plot.style_line)

مزید