اس حکمت عملی کا بنیادی خیال ایک خودکار تجارتی نظام ڈیزائن کرنا ہے جو چلتی اوسط اور ٹریلنگ اسٹاپ نقصان کے طریقہ کار کا استعمال کرتے ہوئے ڈراؤونگ کو کنٹرول کرتے ہوئے رجحانات کی منڈیوں میں منافع حاصل کرسکتا ہے۔
یہ حکمت عملی صارفین کو مختلف اقسام کے چلتے ہوئے اوسطوں میں سے انتخاب کرنے کی اجازت دیتی ہے ، بشمول سادہ چلتے ہوئے اوسط ، تیزی سے چلتے ہوئے اوسط ، وزن شدہ چلتے ہوئے اوسط وغیرہ۔ صارفین اپنی ترجیحات کی بنیاد پر چلتے ہوئے اوسط کی قسم کا انتخاب کرسکتے ہیں۔
صارفین کو چلتی اوسط کی مدت طے کرنے کی ضرورت ہے۔ عام طور پر درمیانی مدت کی تجارت کے لئے مدت 20-60 کے درمیان ہوتی ہے۔
ایک بار جب حرکت پذیر اوسط منتخب ہوجاتا ہے تو ، حکمت عملی اسے حقیقی وقت میں حساب لگائے گی۔ جب قیمت حرکت پذیر اوسط سے اوپر ہوتی ہے تو یہ طویل ہوجائے گی اور جب قیمت حرکت پذیر اوسط سے نیچے ہوتی ہے تو مختصر ہوجائے گی۔
یہ حکمت عملی ایک ٹریلنگ اسٹاپ نقصان میکانزم کا استعمال کرتی ہے۔ پوزیشن کھولنے کے بعد ، یہ مسلسل اوسط اور قیمت کے مابین تعلقات کی نگرانی کرے گی ، اور اسٹاپ نقصان کی سطح کو متحرک طور پر ایڈجسٹ کرے گی۔ خاص طور پر ، اسٹاپ نقصان صارف کے ذریعہ مقرر کردہ اوسط اور / یا مائنس اسٹاپ نقصان فیصد پر مقرر کیا جاتا ہے۔
صارفین اسٹاپ نقصان کا فیصد مقرر کرسکتے ہیں۔ ایک بڑی فیصد کا مطلب ہے کہ اسٹاپ نقصان کی وسیع رینج اور کم حساسیت ہے۔ ایک چھوٹا فیصد کا مطلب ہے کہ اسٹاپ نقصان کا تنگ اور کم خطرہ ہے۔ اسٹاپ نقصان کا فیصد عام طور پر 2٪ سے 5٪ کے درمیان مقرر کیا جاتا ہے۔
پوزیشن کھولنے کے بعد، اگر قیمت چلتی اوسط سے پیچھے نکل جاتی ہے، تو پوزیشن بند ہو جائے گی۔
خطرات کو مندرجہ ذیل طریقوں سے بہتر بنایا اور کنٹرول کیا جاسکتا ہے:
اسٹریٹیجی کو مندرجہ ذیل پہلوؤں میں مزید بہتر بنایا جاسکتا ہے:
تصدیق کے ل other دوسرے اشارے شامل کریں ، حد سے زیادہ منسلک مارکیٹوں کے دوران زیادہ تجارت سے گریز کریں۔ ایم اے سی ڈی ، کے ڈی شامل کیا جاسکتا ہے ، تاکہ سگنل صرف اس وقت لیا جائے جب وہ سیدھ میں ہوں۔
چلتی اوسطوں کا ایک مجموعہ استعمال کریں۔ مثال کے طور پر ، 5 دن کی ایم اے اور 20 دن کی ایم اے کو ایک ساتھ استعمال کیا جاسکتا ہے ، تاکہ تجارت صرف اس وقت کی جائے جب دونوں ایک ہی سمت میں سیدھ ہوجائیں۔
ہر پروڈکٹ پر الگ الگ پیرامیٹرز کی جانچ کریں اور بہترین پیرامیٹرز مرتب کریں۔ پیرامیٹرز مصنوعات اور ٹائم فریموں میں مختلف ہوتے ہیں لہذا الگ الگ جانچ کی ضرورت ہوتی ہے۔
پوزیشن سائزنگ کے قواعد شامل کریں۔ مثال کے طور پر ، ابتدائی پوزیشن کے لئے مقررہ مقدار ، پھر اسٹاپ نقصان کے فاصلے کی بنیاد پر پوزیشن میں شامل کریں۔
فی دن تجارت کی زیادہ سے زیادہ تعداد یا تجارت کے درمیان کم سے کم وقت مقرر کریں۔ اس سے زیادہ تجارت کی حد ہوتی ہے۔
مشین لرننگ الگورتھم شامل کریں تاکہ تاریخی اعداد و شمار کی بنیاد پر پیرامیٹرز کو متحرک طور پر بہتر بنایا جاسکے ، جامد پیرامیٹر کی ترتیب سے گریز کریں۔
قیمت کے رجحان کی پیش گوئی کے لئے گہری سیکھنے کے ماڈل شامل کریں ، رجحان کی سمت کے فیصلے میں مدد کریں۔
مجموعی طور پر یہ ایک بہت ہی عملی رجحان کی پیروی کرنے والی حکمت عملی ہے۔ یہ رجحان کی سمت کا تعین کرنے اور خطرے پر قابو پانے کے لئے ٹریلنگ اسٹاپس کا استعمال کرتا ہے۔ یہ رجحان کی منڈیوں میں اچھی واپسی پیدا کرسکتا ہے۔ پیرامیٹر کی اصلاح اور دوسرے اشارے یا ماڈلز کے ساتھ انضمام کو یکجا کرنے سے استحکام اور منافع میں مزید اضافہ ہوسکتا ہے۔ صارفین کو مصنوعات اور ٹائم فریموں کے ساتھ ساتھ بڑے واقعات کے اثرات کے ساتھ پیرامیٹر کی ترتیبات میں اختلافات کا نوٹ کرنے کی ضرورت ہے۔ مجموعی طور پر یہ حکمت عملی درمیانی سطح کے ہیج فنڈز اور کچھ تجربے والے خوردہ سرمایہ کاروں کے لئے موزوں ہے۔
/*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())