چلتی اوسط ٹریکنگ سٹاپ نقصان کی حکمت عملی

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

img

جائزہ

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

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

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

  2. صارفین کو چلتی اوسط کی مدت طے کرنے کی ضرورت ہے۔ عام طور پر درمیانی مدت کی تجارت کے لئے مدت 20-60 کے درمیان ہوتی ہے۔

  3. ایک بار جب حرکت پذیر اوسط منتخب ہوجاتا ہے تو ، حکمت عملی اسے حقیقی وقت میں حساب لگائے گی۔ جب قیمت حرکت پذیر اوسط سے اوپر ہوتی ہے تو یہ طویل ہوجائے گی اور جب قیمت حرکت پذیر اوسط سے نیچے ہوتی ہے تو مختصر ہوجائے گی۔

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

  5. صارفین اسٹاپ نقصان کا فیصد مقرر کرسکتے ہیں۔ ایک بڑی فیصد کا مطلب ہے کہ اسٹاپ نقصان کی وسیع رینج اور کم حساسیت ہے۔ ایک چھوٹا فیصد کا مطلب ہے کہ اسٹاپ نقصان کا تنگ اور کم خطرہ ہے۔ اسٹاپ نقصان کا فیصد عام طور پر 2٪ سے 5٪ کے درمیان مقرر کیا جاتا ہے۔

  6. پوزیشن کھولنے کے بعد، اگر قیمت چلتی اوسط سے پیچھے نکل جاتی ہے، تو پوزیشن بند ہو جائے گی۔

فوائد

  • رجحان کے ساتھ ساتھ پوزیشن کھول سکتے ہیں اور رجحان کی مارکیٹوں میں زیادہ منافع حاصل کرسکتے ہیں
  • قیمت کی کارروائی کی بنیاد پر اسٹاپ کی سطح کو ایڈجسٹ کرنے کے لئے ٹریلنگ اسٹاپ نقصان کا استعمال کرتا ہے ، اسٹاپ کو بہت تنگ ہونے سے بچتا ہے
  • خطرہ کی خواہش کے مطابق چلتی اوسط اور سٹاپ نقصان فیصد کی تخصیص کی اجازت دیتا ہے
  • مختلف چلتی اوسط اقسام کی حمایت کرتا ہے، ٹیسٹنگ کے ذریعے اصلاح کی اجازت دیتا ہے
  • سادہ اور واضح منطق، سمجھنے اور تبدیل کرنے کے لئے آسان

خطرات

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

خطرات کو مندرجہ ذیل طریقوں سے بہتر بنایا اور کنٹرول کیا جاسکتا ہے:

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

بہتر مواقع

اسٹریٹیجی کو مندرجہ ذیل پہلوؤں میں مزید بہتر بنایا جاسکتا ہے:

  1. تصدیق کے ل other دوسرے اشارے شامل کریں ، حد سے زیادہ منسلک مارکیٹوں کے دوران زیادہ تجارت سے گریز کریں۔ ایم اے سی ڈی ، کے ڈی شامل کیا جاسکتا ہے ، تاکہ سگنل صرف اس وقت لیا جائے جب وہ سیدھ میں ہوں۔

  2. چلتی اوسطوں کا ایک مجموعہ استعمال کریں۔ مثال کے طور پر ، 5 دن کی ایم اے اور 20 دن کی ایم اے کو ایک ساتھ استعمال کیا جاسکتا ہے ، تاکہ تجارت صرف اس وقت کی جائے جب دونوں ایک ہی سمت میں سیدھ ہوجائیں۔

  3. ہر پروڈکٹ پر الگ الگ پیرامیٹرز کی جانچ کریں اور بہترین پیرامیٹرز مرتب کریں۔ پیرامیٹرز مصنوعات اور ٹائم فریموں میں مختلف ہوتے ہیں لہذا الگ الگ جانچ کی ضرورت ہوتی ہے۔

  4. پوزیشن سائزنگ کے قواعد شامل کریں۔ مثال کے طور پر ، ابتدائی پوزیشن کے لئے مقررہ مقدار ، پھر اسٹاپ نقصان کے فاصلے کی بنیاد پر پوزیشن میں شامل کریں۔

  5. فی دن تجارت کی زیادہ سے زیادہ تعداد یا تجارت کے درمیان کم سے کم وقت مقرر کریں۔ اس سے زیادہ تجارت کی حد ہوتی ہے۔

  6. مشین لرننگ الگورتھم شامل کریں تاکہ تاریخی اعداد و شمار کی بنیاد پر پیرامیٹرز کو متحرک طور پر بہتر بنایا جاسکے ، جامد پیرامیٹر کی ترتیب سے گریز کریں۔

  7. قیمت کے رجحان کی پیش گوئی کے لئے گہری سیکھنے کے ماڈل شامل کریں ، رجحان کی سمت کے فیصلے میں مدد کریں۔

نتیجہ

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


/*backtest
start: 2023-01-01 00:00:00
end: 2023-03-23 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//attoCryp, @HikmetSezen58
strategy("MOST Multi MAs", overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
sx=input(defval = "close" ,title="Fiyat sec", options=[ "close", "high", "low", "open", "hl2", "hlc3", "hlco4", "hlcc4", "hlccc5"])
smox=input(defval = "HulleMA", title = "Hareketli Ortalama: ", options=["T3", "SMA", "EMA", "DEMA", "TEMA", "WMA", "VWMA", "SMMA", "EVWMA", "HullMA", "HulleMA", "LSMA", "ALMA", "TMA", "SSMA"])
timeFramemost = input(title="++++++++++++++++++++++++++++++++++++", defval="MOST Ayarlari:")
yuzde=input(defval=3.8, minval=0, step=0.1, title="Yuzde Oran")/100
ortalamauzunluk=input(defval=28, title="Periyot Uzunlugu", minval=1)
f=input(defval=0.4, step=0.1, title="T3 icin Factor", minval=0.01)
timeFrameadd=input(title="++++++++++++++++++++++++++++++++++++", defval="Diger Orta.Ayar:")
offsig=input(defval=4, title="LSMA icin Offset veya ALMA icin Sigma", minval=0)
offalma=input(defval=0.6, title="ALMA icin Offset", minval=0, step=0.01)
timeFramess=input(title="++++++++++++++++++++++++++++++++++++", defval="Baslangic-Bitis:")
gun_baslangic=input(defval=1, title="Baslangic Gunu", minval=1, maxval=31)
ay_baslangic=input(defval=1, title="Baslangic Ayi", minval=1, maxval=12)
yil_baslangic=input(defval=2017, title="Baslangic Yili", minval=2010)
gun_bitis=input(defval=1, title="Bitis Gunu", minval=1, maxval=31)
ay_bitis=input(defval=1, title="Bitis Ayi", minval=1, maxval=12)
yil_bitis = input(defval=2019, title="Bitis Yili", minval=2010)

// backtest icin baslangic ve bitis zamanlarini belirleme
baslangic=timestamp(yil_baslangic, ay_baslangic, gun_baslangic, 00, 00)
bitis=timestamp(yil_bitis, ay_bitis, gun_bitis, 23, 59) 
zamanaraligi() => true

//guncel fiyatti belirleme
guncelfiyat=sx=="high"?high : sx=="close"?close : sx=="low"?low : sx=="open"?open : sx=="hl2"?(high+low)/2 : sx=="hlc3"?(high+low+close)/3 : sx=="hlco4"?(high+low+close+open)/4 : sx=="hlcc4"?(high+low+close+close)/4 : sx=="hlccc5"?(high+low+close+close+close)/5 : close 

/////Ortalama Hesaplamalari/////
// Tillson T3
sm0(guncelfiyat,ortalamauzunluk,f) =>
    t3e1=ema(guncelfiyat, ortalamauzunluk)
    t3e2=ema(t3e1, ortalamauzunluk)
    t3e3=ema(t3e2, ortalamauzunluk)
    t3e4=ema(t3e3, ortalamauzunluk)
    t3e5=ema(t3e4, ortalamauzunluk)
    t3e6=ema(t3e5, ortalamauzunluk)
    c1=-f*f*f
    c2=3*f*f+3*f*f*f
    c3=-6*f*f-3*f-3*f*f*f
    c4=1+3*f+f*f*f+3*f*f
    s0=c1 * t3e6 + c2 * t3e5 + c3 * t3e4 + c4 * t3e3

// Basit ortalama
sm1(guncelfiyat,ortalamauzunluk) =>
    s1=sma(guncelfiyat, ortalamauzunluk)

// Ustel ortalama
sm2(guncelfiyat,ortalamauzunluk) =>
    s2=ema(guncelfiyat, ortalamauzunluk)

// Cift Ustel ortalama
sm3(guncelfiyat,ortalamauzunluk) =>
    s3=2*ema(guncelfiyat, ortalamauzunluk) - ema(ema(guncelfiyat, ortalamauzunluk), ortalamauzunluk)

// Uclu Ustel ortalama
sm4(guncelfiyat,ortalamauzunluk) =>
    s4=3*(ema(guncelfiyat, ortalamauzunluk) - ema(ema(guncelfiyat, ortalamauzunluk), ortalamauzunluk)) + ema(ema(ema(guncelfiyat, ortalamauzunluk), ortalamauzunluk), ortalamauzunluk)

// Agirlikli Ortalama  
sm5(guncelfiyat,ortalamauzunluk) =>
    s5=wma(guncelfiyat, ortalamauzunluk)

// Hacim Agirlikli Ortalama
sm6(guncelfiyat,ortalamauzunluk) =>
    s6=vwma(guncelfiyat, ortalamauzunluk)

// Smoothed
sm7(guncelfiyat,ortalamauzunluk) =>
    s7=0.0
    s7:=na(s7[1]) ? sma(guncelfiyat, ortalamauzunluk) : (s7[1] * (ortalamauzunluk - 1) + guncelfiyat) / ortalamauzunluk

// Hull Ortalama
sm8(guncelfiyat,ortalamauzunluk) =>
    s8=wma(2 * wma(guncelfiyat, ortalamauzunluk / 2) - wma(guncelfiyat, ortalamauzunluk), round(sqrt(ortalamauzunluk)))
    
// Hull Ustel Ortalama
sm81(guncelfiyat,ortalamauzunluk) =>
    s8=ema(2 * ema(guncelfiyat, ortalamauzunluk / 2) - ema(guncelfiyat, ortalamauzunluk), round(sqrt(ortalamauzunluk)))

// Least Square
sm9(guncelfiyat,ortalamauzunluk,offsig) =>
    s9=linreg(guncelfiyat, ortalamauzunluk, offsig)

// Arnaud Legoux
sm10(guncelfiyat, ortalamauzunluk, offalma, offsig) =>
    s10=alma(guncelfiyat, ortalamauzunluk, offalma, offsig)

// Triangular
sm11(guncelfiyat, ortalamauzunluk) =>
    s11=sma(sma(guncelfiyat, ortalamauzunluk),ortalamauzunluk)

// SuperSmoother filter
sm12(guncelfiyat,ortalamauzunluk) =>
    a1=exp(-1.414*3.14159 / ortalamauzunluk)
    b1=2*a1*cos(1.414*3.14159 / ortalamauzunluk)
    c2=b1
    c3=(-a1)*a1
    c1=1 - c2 - c3
    s12=0.0
    s12:=c1*(guncelfiyat + nz(guncelfiyat[1])) / 2 + c2*nz(s12[1]) + c3*nz(s12[2])
    
//Elastic Volume Weighted Moving Average
sm13(guncelfiyat,ortalamauzunluk) =>
    hacimtoplam=sum(volume, ortalamauzunluk)
    s13=0.0
    s13:=(nz(s13[1]) * (hacimtoplam - volume)/hacimtoplam) + (volume*guncelfiyat/hacimtoplam)

ortalamafiyat=smox=="T3"?sm0(guncelfiyat,ortalamauzunluk,f) : smox=="SMA"?sm2(guncelfiyat,ortalamauzunluk) : smox=="EMA"?sm2(guncelfiyat,ortalamauzunluk) : smox=="DEMA"?sm3(guncelfiyat,ortalamauzunluk) : smox=="TEMA"?sm4(guncelfiyat,ortalamauzunluk) : smox=="WMA"?sm5(guncelfiyat,ortalamauzunluk) : smox=="VWMA"?sm6(guncelfiyat,ortalamauzunluk) : smox=="SMMA"?sm7(guncelfiyat,ortalamauzunluk) : smox=="HullMA"?sm8(guncelfiyat,ortalamauzunluk) : smox=="HulleMA"?sm81(guncelfiyat,ortalamauzunluk) : smox=="LSMA"?sm9(guncelfiyat,ortalamauzunluk,offsig) : smox=="ALMA"?sm10(guncelfiyat, ortalamauzunluk, offalma, offsig) : smox=="TMA"?sm11(guncelfiyat,ortalamauzunluk) : smox=="SSMA"?sm12(guncelfiyat,ortalamauzunluk) : smox=="EVWMA"?sm13(guncelfiyat,ortalamauzunluk) : guncelfiyat

/////MOST'u hesaplama/////
stopfiyat=ortalamafiyat*yuzde
mostfiyat=0.0
mostfiyat:=iff(ortalamafiyat>nz(mostfiyat[1],0) and ortalamafiyat[1]>nz(mostfiyat[1],0),max(nz(mostfiyat[1],0),ortalamafiyat-stopfiyat),iff(ortalamafiyat<nz(mostfiyat[1],0) and ortalamafiyat[1]<nz(mostfiyat[1],0),min(nz(mostfiyat[1],0),ortalamafiyat+stopfiyat),iff(ortalamafiyat>nz(mostfiyat[1],0),ortalamafiyat-stopfiyat,ortalamafiyat+stopfiyat)))

mostcolor=ortalamafiyat>mostfiyat?lime:fuchsia
plot(mostfiyat, color=mostcolor, linewidth=4, title="Most-fiyat")

/////AL-SAT LONG-SHORT girislerini belirleme/////
long=ortalamafiyat>mostfiyat and ortalamafiyat[1]<mostfiyat[1]
short=ortalamafiyat<mostfiyat and ortalamafiyat[1]>mostfiyat[1]
if (long) 
    strategy.entry("AL-Long", strategy.long, when = zamanaraligi())
if (short) 
    strategy.entry("SAT-Short", strategy.short, when = zamanaraligi())

مزید