
Klasik zararı durdur veya RSI'a dayalı zararı durdur (akıllı zararı durdur)
Giriş
Ticarette kutsal kaseyi bulma arayışı beni bu araştırmaya yönelttiğini söylemeliyim. Zararı durdur, para yönetimi söz konusu olduğunda ticaretteki en önemli araçlardan biridir. Para yönetimi ise yatırımcının piyasada para kazanmasının ve uzun vadede istikrarlı olmasının ana yollarındandır. Daha önce belirtildiği gibi, para yönetimi, zararı durdur ve risk:getiri oranı ile yakından ilişkilidir. 1:1.5 risk:getiri oranı, diğer risk:getiri oranlarıyla karşılaştırıldığında daha yüksek başarı oranına sahip olma eğilimindedir, ancak 1:>1.9 risk:getiri oranıysa çoğu zaman daha kârlı olma eğilimindedir ve yatırımcıyı uzun süre boyunca istikrarlı şekilde kârda tutar (kutsal kase). Ancak bu kutsal kase ticaret stratejisini etkileyen bir dezavantaj vardır. İdeal durumda, 1:>1.9 risk:getiri oranıyla gerçekleştirilen ticaret, örneğin benzer 10 işlemden (her birinin riski 1 pip olsun) 6'sı kaybediliyor (6 pip) ve 4'ü kazanılıyorsa (8 pip) (yani, %40 başarı oranıyla) sınırda olacak şekilde kârlı olacaktır. Bu, 2 pip kârda olacağımız anlamına gelir. Gerçek hayattaysa, genellikle bu farklı olur. Bunun ana nedenlerinden biri, zararı durdur avı olarak bilinen faktördür. Zararı durdur avı, fiyatın önce zararı durdur seviyesine ulaştığı ve ardından tahmin edilen yönde hareket ettiği durumdur. Bu, ticaret ve para yönetiminde ciddi bir sorun teşkil eder. Ayrıca yatırımcılar (çoğunlukla yeni başlayanlar) üzerinde psikolojik olarak etkiye de sahiptir.
Şekil 1.1. Zararı durdur avı
Zararı durdur avı, çoğunlukla fiyat grafiğine yerleştirilen sabit zararı durdur veya takip eden zarar durdurucu ile ilişkilidir. Fiyat grafiğinde zararı durdur olmazsa, zararı durdur avı da olmayacaktır. Ancak zararı durdurun olmaması, işlem hesabınızın yok olma olasılığına eşittir.
RSI'a dayalı zararı durdur
RSI osilatörü, fiyat grafiğinin 0 ila 100 aralığındaki pencerede çizilen bir kopyasıdır.
Şekil 1.2. RSI ve çizgi grafik
RSI göstergesi ve çizgi grafik çok benzerse, RSI göstergesini akıllı zararı durdur olarak kullanmak, zararı durdur avı riskini azaltabilir.
Amaç:
Buradaki amacım, RSI'a dayalı zararı durdur kullanımının, zararı durdur avını azaltıp azaltamayacağını ve en önemlisi uzun vadede daha kârlı olup olmayacağını belirlemektir.
Yöntem:
Bu amaçla iki strateji karşılaştırılacak: fiyat grafiğinde ayarlanan zararı durdur ve RSI göstergesinde ayarlanan zararı durdur.
Strateji ve kod
Fiyat grafiğinde klasik zararı durdur
Bu Uzman Danışman, fiyat grafiğinde ayarlanan sabit zarar durdura yönelik olacaktır. Strateji için gereklilikler aşağıda verilmiştir:
Parametreler | Açıklama |
---|---|
Kullanılan gösterge | MACD (12,26,9) |
Kullanılan gösterge | Moving Average (200) |
Kullanılan gösterge | Moving Average (50) |
Kullanılan gösterge | ATR (5) |
Zaman dilimi | 1 dakika |
Alış girişi | Moving Average (50) Moving Average (200)'ün üzerinde ve MACD çizgisi de, hem MACD çizgisi hem de sinyal çizgisi sıfırın altındayken, sinyal çizgisinin üzerindeyse. |
Satış girişi | Moving Average (50) Moving Average (200)'ün altında ve MACD çizgisi de, hem MACD çizgisi hem de sinyal çizgisi sıfırın üzerindeyken, sinyal çizgisinin altındaysa. |
Çıkış | Zararı durdur ve kârı al (1:2). Alış için zararı durdur, 'girişten önceki yirmi (20) mumum en düşük değeri' eksi 'ATR (5) değeri'dir. Satış için zararı durdur ise, 'girişten önceki yirmi (20) mumum en yüksek değeri' artı 'ATR (5) değeri'dir.
|
Stratejinin grafiksel gösterimi aşağıda verilmiştir:
Şekil 2.1. Alış
Şekil 2.2. Satış
Kod
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link "https://www.mql5.com"
#property version "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
#include<Trade\Trade.mqh>
CTrade trade;
int MATrend;
int MADirection;
int MACD;
int ATR;
input int afi;// ----------RiskAmount------------
input double risk = 0.02; //% Amount to risk
input int atrValue = 20; // ATR VAlue
input int ai;// ----------Moving Average inputs------------
input int movAvgTrend = 200;// Moving Average Trend
input int movAvgDirection = 50;//moving Average for trend Direction;
input int i;// -----------MACD inputs-----------------------
input int fast = 12;// Macd Fast
input int slow = 26; //Macd Slow
input int signal = 9; //Signal Line
Diğer değişkenler de bildirilir.
double pipValue = 0.0;// double Balance; // For the Current Balance
Değişkenler, init() fonksiyonundaki her bir işleyiciye atanır.
int OnInit() { //--- //Moving Averages Indicators'' MATrend = iMA(_Symbol,_Period,movAvgTrend,0,MODE_SMA,PRICE_CLOSE); //Moving Average 200 MADirection = iMA(_Symbol,_Period,movAvgDirection,0,MODE_EMA,PRICE_CLOSE); //Moving Average 50 //MACD MACD = iMACD(_Symbol,_Period,fast,slow,signal,PRICE_CLOSE);//MACD //ATR ATR = iATR(_Symbol,_Period,atrValue); //--- point=_Point; double Digits=_Digits; if((_Digits==3) || (_Digits==5)) { point*=10; } return(INIT_SUCCEEDED); }
Stratejinin nasıl çalıştığına ilişkin kod aşağıdadır:
void Strategy() { MqlRates priceAction[]; ArraySetAsSeries(priceAction,true); int priceData = CopyRates(_Symbol,_Period,0,200,priceAction); double maTrend[]; ArraySetAsSeries(maTrend,true); CopyBuffer(MATrend,0,0,200,maTrend); //200 MA double madirection[]; ArraySetAsSeries(madirection,true); CopyBuffer(MADirection,0,0,200,madirection); //50 MA double macd[]; ArraySetAsSeries(macd,true); CopyBuffer(MACD,0,0,200,macd); //MACD double macds[]; ArraySetAsSeries(macds,true); CopyBuffer(MACD,1,0,200,macds); //MACD_Signal Line double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits); double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits); if (madirection[1]>maTrend[1]) { //Buy ; Uptrend bool macd_bZero = macds[1]<0&&macd[1]<0; //MacD Signal Line is less than Zero bool macd_cross = macd[1]>macds[1];// Macd Crosses the signal line if (macd_bZero && macd_cross) { buyTrade = true; } } else if (madirection[1]<maTrend[1]) { //Sell; DownTrend bool macd_bZero = macds[1]>0&&macd[1]>0;; //MacD Signal Line is less than Zero bool macd_cross = macd[1]<macds[1];// Macd Crosses the signal line if (macd_bZero && macd_cross) { sellTrade = true; } } if (buyTrade && sellTrade) { buyTrade = false; sellTrade = false; return; } if (buyTrade) { buyTrade = false; sellTrade = false; Buy(Ask); } else if (sellTrade) { buyTrade = false; sellTrade = false; Sell(Bid); } }
Giriş (Alış ve Satış)
void Buy(double Ask) { double atr[]; ArraySetAsSeries(atr,true); //This array is use to store all ATR value to the last closed bar CopyBuffer(ATR,0,0,200,atr); // This method copy the buffer value of the ATR indicator into the array (200 buffered data) theLotsize = NormalizeDouble((Balance*risk)/((MathAbs(Ask-((stoplossforBuy(20)-atr[1])))*100)*pipValue),2); // This Calculate the lotsize using the % to risk trade.Buy(theLotsize,_Symbol,Ask,(stoplossforBuy(20)-atr[1]),Ask+(2*MathAbs(Ask-((stoplossforBuy(20)-atr[1])))),NULL); //Buy Entry with zero stoploss && take profit is twice the distance between the entry and the lowest candle } void Sell(double Bid) { double atr[]; ArraySetAsSeries(atr,true); //This array is use to store all ATR value to the last closed bar CopyBuffer(ATR,0,0,200,atr); // This method copy the buffer value of the ATR indicator into the array (200 buffered data) theLotsize = NormalizeDouble((Balance*risk)/((MathAbs(Bid-((stoplossforSell(20)+atr[1])))*100)*pipValue),2); // This Calculate the lotsize using the % to risk trade.Sell(theLotsize,_Symbol,Bid,(stoplossforSell(20)+atr[1]),Bid-(2*MathAbs(((stoplossforSell(20)+atr[1]))-Bid)),NULL); //Sell Entry with zero stoploss && take profit is twice the distance between the entry and the highest candle }
Yukarıdaki kodlardan stoplossforSell(int num) ve stoplossforBuy(int num) olmak üzere iki metot çağrılır. Bu iki metot, işlem girişi tetiklendikten sonra sırasıyla atanan numaranın en yüksek ve en düşük mumunu belirlemek içindir. Örneğin stoplossforSell(20), girişten önceki 20 mumun en yüksek değerini geri döndürür.
double stoplossforBuy(int numcandle) { int LowestCandle; //Create array for candle lows double low[]; //Sort Candle from current downward ArraySetAsSeries(low,true); //Copy all lows for 100 candle CopyLow(_Symbol,_Period,0,numcandle,low); //Calculate the lowest candle LowestCandle = ArrayMinimum(low,0,numcandle); //Create array of price MqlRates PriceInfo[]; ArraySetAsSeries(PriceInfo,true); //Copy price data to array int Data = CopyRates(Symbol(),Period(),0,Bars(Symbol(),Period()),PriceInfo); return PriceInfo[LowestCandle].low; } double stoplossforSell(int numcandle) { int HighestCandle; double High[]; //Sort array downward from current candle ArraySetAsSeries(High,true); //Fill array with data for 100 candle CopyHigh(_Symbol,_Period,0,numcandle,High); //calculate highest candle HighestCandle = ArrayMaximum(High,0,numcandle); //Create array for price MqlRates PriceInformation[]; ArraySetAsSeries(PriceInformation,true); //Copy price data to array int Data = CopyRates(Symbol(),Period(),0,Bars(Symbol(),Period()),PriceInformation); return PriceInformation[HighestCandle].high; }
Uzman Danışman, açık bir ticaret işlemi olup olmadığını kontrol eder. Açık bir ticaret işlemi yoksa, strateji metodu çağrılarak işlemlere teker teker olacak şekilde girilir.
void OnTick() { //--- pipValue = ((((SymbolInfoDouble(Symbol(), SYMBOL_TRADE_TICK_VALUE))*point)/(SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_SIZE)))); Balance = AccountInfoDouble(ACCOUNT_BALANCE); if (PositionsTotal()==0) { Strategy(); } }
RSI göstergesinde RSI'a dayalı zararı durdur
Bu Uzman Danışman ise, RSI göstergesinde ayarlanan sabit zarar durdura yönelik olacaktır. Strateji için gereklilikler aşağıda verilmiştir:
Parametreler | Açıklama |
Kullanılan gösterge | MACD (12,26,9) |
Kullanılan gösterge | Moving Average (200) |
Kullanılan gösterge | Moving Average (50) |
Kullanılan gösterge | ATR (5) |
Zaman dilimi | 1 dakika |
Alış girişi | Moving Average (50) Moving Average (200)'ün üzerinde ve MACD çizgisi de, hem MACD çizgisi hem de sinyal çizgisi sıfırın altındayken, sinyal çizgisinin üzerindeyse. |
Satış girişi | Moving Average (50) Moving Average (200)'ün altında ve MACD çizgisi de, hem MACD çizgisi hem de sinyal çizgisi sıfırın üzerindeyken, sinyal çizgisinin altındaysa. |
Çıkış | Kârı Al. Alış için zararı durdur, girişten önceki on (10) RSI değerinin en düşüğüdür. Satış için zararı durdur, girişten önceki on (10) RSI değerinin en yükseğidir.
Eğer mevcut RSI, yukarıdaki koşula göre elde edilen en yüksek veya en düşük RSI değerini çaprazlarsa, ticaret işlemi kapanır.
|
Algılama kolaylığı için RSI göstergesi üzerine RSI'a dayalı zararı durdur seviyesi çizilir.
Şekil 2.3. RSI'a dayalı zararı durdura sahip alış işlemi
Mevcut RSI değeri, RSI penceresindeki zarar durdur seviyesini aşağı doğru çaprazladığında ticaret işlemi kapanır.
Şekil 2.4. RSI'a dayalı zararı durdura sahip satış işlemi
Mevcut RSI değeri, RSI penceresindeki zarar durdur seviyesini yukarı doğru çaprazladığında ticaret işlemi kapanır.
Kod
Kodun ilk kısmı esas olarak değişken bildirimi ve girdi verileri içindir. Bu Uzman Danışmanı öncekinden ayıran eklemeler aşağıda verilmiştir:
int RSI; input int rsi = 5; // RSI VAlue double lowestrsiValue = 100; double highestrsiValue = 0.0;
onint() metoduna da şu ekleme yapılmıştır:
int OnInit() { //RSI RSI = iRSI(_Symbol,_Period,rsi,PRICE_CLOSE); }
Stratejinin nasıl çalıştığına ilişkin kod yukarıdakiyle aynıdır. Ancak hem alış hem de satış girişinde zararı durdur yoktur çünkü zararı durdur olarak RSI seviyesi kullanılır. Piyasaya giriş kodu aşağıdadır:
void Buy(double Ask) { double atr[]; ArraySetAsSeries(atr,true); //This array is use to store all ATR value to the last closed bar CopyBuffer(ATR,0,0,200,atr); // This method copy the buffer value of the ATR indicator into the array (200 buffered data) theLotsize = NormalizeDouble((Balance*risk)/((MathAbs(Ask-((stoplossforBuy(20)-atr[1])))*100)*pipValue),2); // This Calculate the lotsize using the % to risk ObjectCreate(0,"sl",OBJ_HLINE,3,0,lowestRSI(10)); // Since our stoploss is zero we assign a smart stoploss on the rsi by drawing a line on the rsi window trade.Buy(theLotsize,_Symbol,Ask,0,Ask+(2*MathAbs(Ask-((stoplossforBuy(20)-atr[1])))),NULL);//Buy Entry with zero stoploss && take profit is twice the distance between the entry and the lowest candle Print("SL",lowestRSI(10)); } void Sell(double Bid) { double atr[]; ArraySetAsSeries(atr,true); //This array is use to store all ATR value to the last closed bar CopyBuffer(ATR,0,0,200,atr); // This method copy the buffer value of the ATR indicator into the array (200 buffered data) theLotsize = NormalizeDouble((Balance*risk)/((MathAbs(Bid-((stoplossforSell(20)+atr[1])))*100)*pipValue),2); // This Calculate the lotsize using the % to risk ObjectCreate(0,"sl",OBJ_HLINE,3,0,highestRSI(10)); // Since our stoploss is zero we assign a smart stoploss on the rsi by drawing a line on the rsi window trade.Sell(theLotsize,_Symbol,Bid,0,Bid-(2*MathAbs(((stoplossforSell(20)+atr[1]))-Bid)),NULL);//Sell Entry with zero stoploss && take profit is twice the distance between the entry and the highest candle Print("SL",highestRSI(10)); }
Kodun yukarıdaki Uzman Danışmandan farklı olan son kısmı, RSI'ın en düşük ve en yüksek değerlerini elde eden metotlardır. Bu metotlar, yukarıdaki piyasaya giriş metodundan çağrılır ve RSI'ın en düşük veya en yüksek seviyesinde çizgi çizmek için verileri kullanır.
Not: Strateji metodunda açık pozisyon olmadığında çizilen çizgi silinir.
double lowestRSI(int count) { double thersi[]; ArraySetAsSeries(thersi,true); CopyBuffer(RSI,0,0,200,thersi); for (int i = 0; i<count;i++) { if (thersi[i]<lowestrsiValue) { lowestrsiValue = thersi[i]; } } return lowestrsiValue; } //This method get the Highest RSI afer ENtry to set the smart Stoploss double highestRSI(int count) { double thersi[]; ArraySetAsSeries(thersi,true); CopyBuffer(RSI,0,0,200,thersi); for (int i = 0; i<count;i++) { if (thersi[i]>highestrsiValue) { highestrsiValue = thersi[i]; } } return highestrsiValue; }
####
Uzman Danışmanları yukarıdaki gibi hazırladık ve devamında derledik, şimdi sonuçlar için her iki Uzman Danışmanı test etmeye başlayabiliriz.
Test ve sonuç
Zararı durdur avı testi
Bu bölümde testlerden elde edilen sonuçlar sunulacaktır. Gerçekleştirilecek ilk test, RSI'a dayalı zararı durdur kullanan Uzman Danışmanın ticaret sırasında zararı durdur avı sorununu azaltıp azaltamayacağını belirlemektir. Bunun için, klasik zararı durdur kullanan Uzman Danışman ile karşılaştırılacaktır.
Testler M1 zaman diliminde yapılmıştır.
RSI'a dayalı zararı durdur kullanan Uzman Danışman
Uzman Danışman: | MACD_Smart_Stoploss | |||||||||||
Sembol: | Volatility 10 Index | |||||||||||
Zaman dilimi: | M1 (2021.07.01 - 2021.07.15) | |||||||||||
Girdiler: | afi=0 | |||||||||||
risk=0.05 | ||||||||||||
atrValue=20 | ||||||||||||
rsi=14 | ||||||||||||
ai=0 | ||||||||||||
movAvgTrend=200 | ||||||||||||
movAvgDirection=50 | ||||||||||||
i=0 | ||||||||||||
fast=12 | ||||||||||||
slow=26 | ||||||||||||
signal=9 | ||||||||||||
Broker: | Deriv Limited | |||||||||||
Para birimi: | USD | |||||||||||
Başlangıç bakiyesi: | 500.00 | |||||||||||
Kaldıraç: | 1:500 |
Klasik zararı durdur kullanan Uzman Danışman
Uzman Danışman: | MACD_Cross_Stoploss | |||||||||||
Sembol: | Volatility 10 Index | |||||||||||
Zaman dilimi: | M1 (2021.07.01 - 2021.07.15) | |||||||||||
Girdiler: | afi=0 | |||||||||||
risk=0.05 | ||||||||||||
atrValue=5 | ||||||||||||
ai=0 | ||||||||||||
movAvgTrend=200 | ||||||||||||
movAvgDirection=50 | ||||||||||||
i=0 | ||||||||||||
fast=12 | ||||||||||||
slow=26 | ||||||||||||
signal=9 risk reward=1:2 | ||||||||||||
Broker: | Deriv Limited | |||||||||||
Para birimi: | USD | |||||||||||
Başlangıç bakiyesi: | 500.00 | |||||||||||
Kaldıraç: | 1:50 |
Sonuçlar
Aşağıda, her iki Uzman Danışman tarafından gerçekleştirilen işlemlerin grafiksel gösterimi bulunmaktadır. Her bir Uzman Danışman için toplamda üç işlem örneği sunulmuştur.
Şekil 3.1. RSI'a dayalı zararı durdur kullanan Uzman Danışmanın 1. örneği
Şekil 3.1a. Klasik zararı durdur kullanan Uzman Danışmanın 1. örneği
Şekil 3.2. RSI'a dayalı zararı durdur kullanan Uzman Danışmanın 2. örneği
Şekil 3.2a. Klasik zararı durdur kullanan Uzman Danışmanın 2. örneği
Şekil 3.3. RSI'a dayalı zararı durdur kullanan Uzman Danışmanın 3. örneği
Şekil 3.3a. Klasik zararı durdur kullanan Uzman Danışmanın 3. örneği
Yukarıdaki karşılaştırmadan, RSI'a dayalı zararı durdur kullanan Uzman Danışmanın, fiyat grafiğinde ayarlanan klasik zararı durdur kullanan Uzman Danışmana göre, zararı durdur avından kaçınma konusunda çok daha iyi bir iş çıkardığı görülebilir.
Karlılık testi
Şimdi en önemli konuyu ele alma zamanı - avdan kaçınmak için tasarladığımız Uzman Danışman daha kârlı mı? RSI'a dayalı zararı durdur kullanan Uzman Danışman, zararı durdur avından kaçınma konusunda daha iyi bir iş çıkardığından, dolayısıyla daha az sayıda zararı durduru tetiklemiş olacağından klasik zararı durdur kullanan Uzman Danışmana kıyasla daha kârlı olmalı ve daha yüksek başarı oranına sahip olmalıdır. Mantıksal olarak bu doğru olabilir. Ancak bu teoriyi kanıtlamak için test yapılmalıdır.
Yukarıdaki test için belirtilen veriler buradaki her iki test için de kullanılacaktır. Her iki Uzman Danışmana M1 zaman diliminde 100'den fazla ticaret işlemi üzerinde geriye dönük test yapılacaktır. Sonuçlar aşağıda verilmiştir.
RSI'a dayalı zararı durdur kullanan Uzman Danışmanın sonuçları
Sonuçlar | ||||||||||||
Geçmiş kalitesi: | 100% | |||||||||||
Çubuklar: | 20160 | Tikler: | 603385 | Semboller: | 1 | |||||||
Total net kâr: | 327.71 | Mutlak bakiye drawdownı: | 288.96 | Mutlak varlık drawdownı: | 367.85 | |||||||
Brüt kâr: | 3 525.74 | Maksimum bakiye drawdownı: | 483.90 (69.63%) | Maksimum varlık drawdownı: | 523.24 (71.95%) | |||||||
Brüt zarar: | -3 198.03 | Relatif bakiye drawdownı: | 69.63% (483.90) | Relatif varlık drawdownı: | 73.65% (369.45) | |||||||
Kâr faktörü: | 1.10 | Beklenen getiri: | 1.76 | Marjin seviyesi: | 317.21% | |||||||
Düzelme faktörü: | 0.63 | Sharpe oranı: | 0.08 | Z skoru: | 1.68 (90.70%) | |||||||
AHPR: | 1.0070 (0.70%) | LR korelasyonu: | 0.51 | OnTester sonucu: | 0 | |||||||
GHPR: | 1.0027 (0.27%) | LR standart hatası: | 134.83 | |||||||||
Toplam işlem: | 186 | Satış işlemleri (kârla kapanan %): | 94 (42.55%) | Alış işlemleri (kârla kapanan %): | 92 (38.04%) | |||||||
Toplam işlem parçası (giriş ve çıkış): | 372 | Kârla kapanan işlemler (toplamın % kaçı): | 75 (40.32%) | Zararla kapanan işlemler (toplamın % kaçı): | 111 (59.68%) | |||||||
En büyük kârla kapanan işlem: | 85.26 | En büyük zararla kapanan işlem: | -264.99 | |||||||||
Kârla kapanan işlemlerin ortalama kârı: | 47.01 | Zararla kapanan işlemlerin ortalama zararı: | -28.81 | |||||||||
En fazla işleme sahip ardışık kâr serisi ($): | 5 (350.60) | En fazla işleme sahip ardışık zarar serisi ($): | 6 (-255.81) | |||||||||
En fazla kâra sahip ardışık kâr serisi (işlem sayısı): | 350.60 (5) | En fazla zarar sahip ardışık zarar serisi (işlem sayısı): | -413.34 (5) | |||||||||
Ardışık kâr serilerinin ortalama işlem sayısı: | 2 | Ardışık zarar serilerinin ortalama işlem sayısı: | 2 | |||||||||
Şekil 3.4. RSI'a dayalı zararı durdur kullanan Uzman Danışmanın bakiye eğrisi
Klasik zararı durdur kullanan Uzman Danışmanın sonuçları
Sonuçlar | ||||||||||||
Geçmiş kalitesi: | 100% | |||||||||||
Çubuklar: | 20160 | Tikler: | 603385 | Semboller: | 1 | |||||||
Total net kâr: | 3 672.06 | Mutlak bakiye drawdownı: | 215.45 | Mutlak varlık drawdownı: | 217.30 | |||||||
Brüt kâr: | 10 635.21 | Maksimum bakiye drawdownı: | 829.54 (19.27%) | Maksimum varlık drawdownı: | 1 159.20 (25.59%) | |||||||
Brüt zarar: | -6 963.15 | Relatif bakiye drawdownı: | 48.76% (270.82) | Relatif varlık drawdownı: | 51.81% (303.90) | |||||||
Kâr faktörü: | 1.53 | Beklenen getiri: | 15.97 | Marjin seviyesi: | 274.21% | |||||||
Düzelme faktörü: | 3.17 | Sharpe oranı: | 0.16 | Z skoru: | -0.14 (11.13%) | |||||||
AHPR: | 1.0120 (1.20%) | LR korelasyonu: | 0.80 | OnTester sonucu: | 0 | |||||||
GHPR: | 1.0093 (0.93%) | LR standart hatası: | 545.00 | |||||||||
Toplam işlem: | 230 | Satış işlemleri (kârla kapanan %): | 107 (44.86%) | Alış işlemleri (kârla kapanan %): | 123 (38.21%) | |||||||
Toplam işlem parçası (giriş ve çıkış): | 460 | Kârla kapanan işlemler (toplamın % kaçı): | 95 (41.30%) | Zararla kapanan işlemler (toplamın % kaçı): | 135 (58.70%) | |||||||
En büyük kârla kapanan işlem: | 392.11 | En büyük zararla kapanan işlem: | -219.95 | |||||||||
Kârla kapanan işlemlerin ortalama kârı: | 111.95 | Zararla kapanan işlemlerin ortalama zararı: | -51.58 | |||||||||
En fazla işleme sahip ardışık kâr serisi ($): | 6 (1 134.53) | En fazla işleme sahip ardışık zarar serisi ($): | 9 (-211.43) | |||||||||
En fazla kâra sahip ardışık kâr serisi (işlem sayısı): | 1 134.53 (6) | En fazla zarar sahip ardışık zarar serisi (işlem sayısı): | -809.21 (4) | |||||||||
Ardışık kâr serilerinin ortalama işlem sayısı: | 2 | Ardışık zarar serilerinin ortalama işlem sayısı: | 2 |
Şekil 3.5. Klasik zararı durdur kullanan Uzman Danışmanın bakiye eğrisi
Değerlendirme
Sonuçlara bakıldığında, her iki Uzman Danışmanın da işlem döneminin sonunda kârlı olmasına rağmen, ilk Uzman Danışmanın (RSI'a dayalı zararı durdur kullanan) bazıları büyük olmak üzere daha az sayıda zarara sahip olduğu gözlemlenebilir.Şekil 3.6. RSI'a dayalı zararı durdur kullanan Uzman Danışmanın varlık eğrisi
Bu zararlar, Uzman Danışmanın genel karlılığını ve ayrıca uygun para yönetimini etkileyebilir. Öte yandan, klasik zararı durdur kullanan Uzman Danışman, daha fazla sayıda zarara sahip olmasına rağmen işlem döneminin sonunda daha fazla para kazanmış oldu.
Sonuç
Para yönetimi gerçekten de ticaretin kutsal kasesidir. Yukarıdaki deney, tam olarak uygulanan para yönetiminin, daha fazla sayıda zarara rağmen daha büyük miktarda kâr getirdiğini göstermiştir. Bunun nedeni ticaret istikrarıdır. Ancak, zararı durdurun RSI'a dayalı olması, risk miktarı değiştiğinden, ilk Uzman Danışman (RSI'a dayalı zararı durdur kullanan) için tam olarak aynı istikrarı sağlamamıştır.
Öneri
İlk Uzman Danışmandaki (RSI'a dayalı zararı durdur kullanan) zararları azaltmanın bir yolu hedging olabilir. Bu, daha istikrarlı bir risk miktarı sağlayabilir ve uzun vadede kârı artırabilir.Okuduğunuz için teşekkürler!
MetaQuotes Ltd tarafından İngilizceden çevrilmiştir.
Orijinal makale: https://www.mql5.com/en/articles/9827





- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz