
یہ حکمت عملی بنیادی طور پر مارکیٹ کے رجحانات اور اتار چڑھاؤ کو پکڑنے کے لئے چلتی اوسط اور بلینز کا استعمال کرتی ہے۔ اس حکمت عملی میں تین مختلف متحرک اوسط استعمال کی جاتی ہیں: سادہ منتقل اوسط ((SMA) ، وزن میں چلنے والی اوسط ((WMA) اور اشاریہ منتقل اوسط ((EMA) ۔ بلینز کا استعمال کرتے ہوئے قیمتوں کے راستے کو طے کیا جاتا ہے ، اور بالائی اور بالائی پٹریوں کو کھولنے کے لئے پوزیشن پر امن کے سگنل کے طور پر استعمال کیا جاتا ہے۔ جب قیمت بلینز کے اوپری پٹریوں کو توڑتی ہے تو خالی پوزیشن کھولی جاتی ہے ، اور نیچے کی پٹریوں کو توڑنے پر زیادہ پوزیشن کھولی جاتی ہے۔
مارینا پارفینوفا اسکول پروجیکٹ روبوٹ ایک ایسی کوانٹیویٹی ٹریڈنگ حکمت عملی ہے جو چلتی اوسط اور برلن بینڈ پر مبنی ہے۔ اس میں مارکیٹ کے رجحانات کو پکڑنے کے ذریعے منافع کمانے کی کوشش کی جاتی ہے ، اور اسی وقت برلن بینڈ اسٹاپ نقصان لائن کے ذریعے واپسی کو کنٹرول کیا جاتا ہے۔ حکمت عملی کی منطق سادہ اور واضح ہے ، اس کا اطلاق وسیع ہے ، اور پیرامیٹرز کو مارکیٹ کی خصوصیات کے مطابق لچکدار طریقے سے ایڈجسٹ کیا جاسکتا ہے۔ تاہم ، عملی استعمال میں ، ہلچل والے بازار ، انتہائی حالات ، پیرامیٹرز کی اصلاح اور دیگر امور پر توجہ دینے کی ضرورت ہے ، اور فنڈ مینجمنٹ اور پوزیشن مینجمنٹ کے قواعد کو مزید بہتر بنانے کی ضرورت ہے۔ مجموعی طور پر ، اس حکمت عملی کو بنیادی کوانٹیویٹی ٹریڈنگ فریم ورک کے طور پر استعمال کیا جاسکتا ہے ، جس کی بنیاد پر اس کو مستقل طور پر بہتر اور بہتر بنایا جاسکتا ہے ، تاکہ زیادہ مستحکم اور صحت مند تجارتی اثر حاصل کیا جاسکے۔
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy ("Marina Parfenova School Project Bot", overlay = true)
sma(price, n) =>
result = 0.0
for i = 0 to n - 1
result := result + price [i] / n
result
wma(price, n) =>
result = 0.0
sum_weight = 0.0
weight = 0.0
for i = 0 to n - 1
weight := n - 1
result := result + price [i]*weight
sum_weight := sum_weight + weight
result/sum_weight
ema(price, n) =>
result = 0.0
alpha = 2/(n + 1)
prevResult = price
if (na(result[1]) == false)
prevResult := result[1]
result := alpha * price + (1 - alpha) * prevResult
/// Настройки
n_slow = input.int(50, "Период медленной скользящей средней", step=5)
n_fast = input.int(4, "Период быстрой скользящей средней")
n_deviation = input.int(30, "Период среднеквадратического отклонения", step=5)
k_deviation_open = input.float(1.2, "Коэффициент ширины коридора покупки", step=0.1)
k_deviation_close = input.float(1.6, "Коэффициент ширины коридора продажи", step=0.1)
// ----- Линии индикаторов -----
// Медленная скользящая
sma = sma(close, n_slow)
plot(sma, color=#d3d3d3)
// Линии Боллинджера, обозначающие коридор цены
bollinger_open = k_deviation_open * ta.stdev(close, n_deviation)
open_short_line = sma + bollinger_open
plot(open_short_line, color=#ec8383)
open_long_line = sma - bollinger_open
plot(open_long_line, color=#6dd86d)
bollinger_close = k_deviation_close * ta.stdev(close, n_deviation)
close_short_line = sma + bollinger_close
plot(close_short_line, color=#e3e3e3)
close_long_line = sma - bollinger_close
plot(close_long_line, color=#e3e3e3)
// Быстрая скользящая
ema = ema(close, n_fast)
plot(ema, color = color.aqua, linewidth = 2)
// ----- Сигналы для запуска стратегии -----
// если ema пересекает линию open_short сверху вниз - сигнал на создание ордера в short
if(ema[1] >= open_short_line[1] and ema < open_short_line)
strategy.entry("short", strategy.short)
// если ema пересекает линию open_long снизу вверх - сигнал на создание ордера в long
if(ema[1] <= open_long_line[1] and ema > open_long_line)
strategy.entry("long", strategy.long)
// если свеча пересекает верхнюю линию коридора продажи - закрываем все long-ордера
if (high >= close_short_line)
strategy.close("long")
// если свеча пересекает нижнюю линию коридора продажи - закрываем все short-ордера
if (low <= close_long_line)
strategy.close("short")