Fiyat Yönüne ve Hareket Hızına Dayalı Alım Satım Fikirleri
Giriş
Bir fiyat hareket ettiğinde, tüm likit piyasaların önce yükselen ve sonra aşağı inen bir tür dalga döngüsel doğası ortaya çıkardığı uzun zamandır bilinmektedir. Daha yüksek zaman dilimlerinin grafiklerinde açıkça görülmektedir. Sinüzoidal doğa, fiyatın belirli bir kalıcılığa sahip olduğu gerçeğinin bir yansımasıdır. Aksi takdirde bir zikzak gibi görünürdü: kısa süreler içinde ani yukarı ve aşağı hareketler. Bu olgunun nedenlerini ve alım satımda kullanmanın yollarını bulmaya çalışalım.
Hareket Başlangıcı ve Kalıcılık
Dünyamızdaki herhangi bir hareket yönü, ivmesi ve hızı ile karakterize edilebilir. Bu, likit piyasalarda da işe yarar. Bu, fiyatın tek bir güçlü yönlü hareketinin asla sert bir şekilde sona eremeyeceğini söyleyen önemli bir kuralı ima eder. Bir trene benzetilebilir: Bütün bir tren tam hızda fren yaptığında, fren mesafesi bir kilometreye kadar çıkabilir.
Peki bir trend ne zaman başlar? Piyasa katılımcılarının çoğunluğu, küresel yön değişikliği veya piyasayı veya haberleri etkileyen bazı önemli faktörlerin değişmesi ile ilgili bazı nedenlerle görüşlerini aksi yönde değiştirdiğinde. Bununla birlikte, dikkate alınan bir kolektif fikir oluşur ve trend başlar. Piyasa katılımcıları, hareketin güçlendiğine ve daha da devam edeceğine dair artan bir inanca sahiptir. Büyük oyuncular piyasaya büyük pozisyonlarla girdiği için bir yönü, ivmesi ve belli bir hızı vardır. Hareketin en başında giren ve ona ivme ve hız kazandıranların kazanç elde etmeye başladıkları yer burasıdır. Diğer yatırımcılar piyasaya daha geç ve daha az cazip fiyatlarla girer. Ancak ilk yatırımcıların aksine, fiyat hareketi yönünü kullanmaya çalışırlar.
Trend, değişiklikler meydana geldiğinde sona erer. Ama neden fiyat hala aynı şekilde hareket ediyor? Neden aniden değişmiyor? Bu davranışın nedeni, fiyatı istenen yönde hızlandıran ve itenlerin pozisyonlarını kapatmaya başlaması ve böylece trendi bastırmasıdır. Ayrıca sadece "rüzgarı arkasına alanlar" hala hiçbir şeyin değişmediğine inanıyor ve hatta fiyatı hareket ettirmeye çalışıyorlar. Ancak bu "tren" sadece durmaz. Ters yönde hareket etmeye başlar ve hikaye burada biter.
Alım Satım Fikri ve "Tren" Tarafından Ezilmeme
Hareketi kullanma ve kar elde etme fikri, mevcut trend derinliğinin, yani boyutunun ve süresinin analizine dayanır.
Canlı bir örnek sağlamak için standart göstergeler kullanıyoruz: RSI (Göreceli Güç Endeksi) ve AC (Hızlanma/Yavaşlama).
1. Pazara giriş koşulları
Fiyatın şu anda ne kadar ileri ve derin hareket ettiğini göstermek için ilk göstergeyi kullanacağız.
Bir mesafe ve derinlik belirlemek için seviyeler yerleştireceğiz:
Şek. 1. RSI osilatör seviyeleri
Fiyat hareketi derinliği değerlendirme kriterleri:
- 40 - 60 seviyeleri arasındaki bir alan düz bölge (yan bölge) olarak kabul edilir. Fiyat bu bölgedeyken herhangi bir trend bulunmaz. Yönlendirilmiş bir hareketin olmamasına indeks 0 atayalım.
Satın alma fiyat hareketi bölgeleri:
- Bölge 60-70 - bu, yukarı doğru hareketin olası bir başlangıcıdır. Bu harekete indeks 1 atayalım.
- Bölge 70-80 - yukarı doğru hareket daha belirgindir. Hareket hız kazanır. İndeks 2 atayın.
- Bölge 80-90 - hareketin stabil bir yönü vardır. Hız kazanıldı. İndeks 3 atayın.
- Bölge 90-100. Kural olarak bu, geri çekilmeleri olmayan güçlü tek yönlü bir harekettir. Çok nadir. Hareket indeksi 4 olacaktır.
Benzer şekilde satış fiyatlarını endeksleyelim:
- Bölge 30-40. Hareket aşağı doğru inmeye başlar. İndeks -1.
- Bölge 20-30. Hareket hız kazanır. İndeks -2.
- Bölge 10-20. Stabil aşağı yön. İndeks -3.
- Bölge 0-10. Güçlü tek yönlü hareket bölgesi. İndeks -4.
Bu durumu MQL4 dilinde şu şekilde tanımlayabiliriz:
//--- determining buy index double rsi=iRSI(Symbol(),tf,period,PRICE_CLOSE,0); index_rsi = 0; if(rsi>90.0) index_rsi=4; else if( rsi > 80.0 ) index_rsi = 3; else if( rsi > 70.0 ) index_rsi = 2; else if( rsi > 60.0 ) index_rsi = 1; else if( rsi < 10.0 ) index_rsi = -4; else if( rsi < 20.0 ) index_rsi = -3; else if( rsi < 30.0 ) index_rsi = -2; else if( rsi < 40.0 ) index_rsi = -1;
Bill Williams'ın AC göstergesini amacına uygun olarak kullanacağız, yani mevcut hareketin hızını ve ivmesini ölçeceğiz.
Şek. 2. AC göstergesi
Hız değerlendirme kriterleri:
Büyüme.
- İlk kriter, mevcut ve önceki histogramların karşılaştırılmasıdır. Mevcut histogram öncekini aşarsa fiyat artışında olası bir hızlanma vardır. 1'e eşit hız indeksi olarak tanımlayalım.
- İkinci kriter, 3 komşu çubuğun karşılaştırılmasıdır (sıfır çubuğundan ikinci çubuğa). Sonraki her çubuğun değeri bir önceki çubuğun değerini aşarsa artan ivmeden bahsedebiliriz. Hız indeksi 2'ye eşit olacaktır.
- Önceki her çubuğun sonrakinden daha küçük olup olmadığını kontrol etmek için 4 çubuğun benzer bir karşılaştırması vardır. Hız indeksi 3'tür.
- Aynı durumu kontrol etmek için son 5 çubuğun mevcut olana göre karşılaştırılması. Hız indeksi 4'tür.
Düşüş.
- Aynı şekilde. Mevcut çubuğun ve öncekinin karşılaştırılması. Mevcut çubuk öncekinden daha küçükse hız endeksi -1'e eşittir.
- Öncekinden mevcut olana 3 çubuk azaltma karşılaştırması. İndeks -2'dir.
- 4 çubuğun karşılaştırılması. İndeks -3'tür.
- 5 çubuğun karşılaştırılması. İndeks -4'tür.
MQL4'te aşağıdaki gibi görünecektir:
double ac[]; ArrayResize(ac,5); for(int i=0; i<5; i++) ac[i]=iAC(Symbol(),tf,i); index_ac=0; //--- buy signal if(ac[0]>ac[1]) index_ac=1; else if(ac[0]>ac[1] && ac[1]>ac[2]) index_ac=2; else if(ac[0]>ac[1] && ac[1]>ac[2] && ac[2]>ac[3]) index_ac=3; else if(ac[0]>ac[1] && ac[1]>ac[2] && ac[2]>ac[3] && ac[3]>ac[4]) index_ac=4; //--- sell signal else if(ac[0]<ac[1]) index_ac=-1; else if(ac[0]<ac[1] && ac[1]<ac[2]) index_ac=-2; else if(ac[0]<ac[1] && ac[1]<ac[2] && ac[2]<ac[3]) index_ac=-3; else if(ac[0]<ac[1] && ac[1]<ac[2] && ac[2]<ac[3] && ac[3]<ac[4]) index_ac=-4;
Hareket derinliği indekslerimiz varsa ve hareket hızını biliyorsak bazı giriş koşullarını ortaya koyabilir ve sınıflandırabiliriz.
Piyasaya giriş seçenekleri vardır:
//--- buy signal if(index_rsi==1 && index_ac>=1) //possible buy movement if(index_rsi==2 && index_ac>=1) //weak buy movement if(index_rsi==3 && index_ac==1) //weak buy movement if(index_rsi==3 && index_ac>=2) //moderate buy movement if(index_rsi==4 && index_ac>=1) //strong buy movement //--- sell signal if(index_rsi==-1 && index_ac<=-1) //possible sell movement if(index_rsi==-2 && index_ac<=-1) //weak sell movement if(index_rsi==-3 && index_ac==-1) //weak sell movement if(index_rsi==-3 && index_ac<=-2) //moderate sell movement if(index_rsi==-4 && index_ac<=-1) //strong sell movement //--- flat if(index_rsi==0)
2. Piyasadan çıkış koşulları
Giriş parametrelerini tanımladık ve sınıflandırdık. Piyasa çıkış koşullarının nasıl oluştuğunu açıklamak için aşağıdaki benzetmeyi yapacağız.
Örneğin bir çocuğun lastik topunu düşünün. Şimdi biri bu topu çok yüksek bir yerden suya atarsa ne olacağını düşünelim. İlk önce yerçekimi ivmesi nedeniyle düşüyor ve hız kazanıyor. Sonra suya çarpıyor. Ama belli bir derinliğe dalıp hızını kaybedecek ve negatif bir değere sahip olacak kadar hıza sahiptir. Top, Arşimet ilkesi tarafından etkilenir, bu nedenle yüzeye itilir.
Şimdi bu örneği detaylandıracağız:
- Zaten anladığınız gibi, topumuz fiyattır.
- Topu atan bir kişi, trendi başlatan piyasa katılımcılarını temsil eder.
- Yerçekimi ivmesine neden olan yerçekimi kuvveti, trend başladıktan sonra fiyat yönüne katılan yatırımcıları temsil eder.
- Su, yön değişikliğini etkileyen önemli faktörleri temsil eder.
- Arşimet ilkesi, trendi başlatanların kapalı pozisyonlarını temsil eder.
Kar elde etmek için iki ana hedef aşağıdaki gibidir:
- Topun zaten atıldığı bir anı zamanında belirleyin ve satın alın veya satın.
- Top suya daldığında ve yavaşladığında bir pozisyonu kapatın.
Finans piyasalarında ne topu fırlatan kişiyi ne de suyu göremediğimiz için süreyi ve topun tam düşme mesafesini belirlemek zor olabilir. Sadece topun hızını ve yönünü görebiliriz.
Fiyat hareket derinliği ve hız değerlendirme kriterlerini yukarıda inceledik.
Şimdi çıkış koşullarını tanımlayacağız:
//--- possible downward reversal if(index_rsi>2 && index_ac<0)
Fiyat yeterince uzun bir süredir yükseliyorsa ivmesi negatif olur (aşağı yönde). Bu, trend değişikliğinin oldukça mümkün olduğu gerçeğine işaret ediyor.
//--- possible upward reversal if(index_rsi<-2 && index_ac>0)
Verilen örneğe benzer şekilde: top yeterince uzun süre düşüyordu ancak suya düştü ve su topu ters yönde dışarı itti. Pozisyonların kapanma anını gösterir.
3. Giriş ve çıkış verimliliğinin arttırılması
Bazı alım satım göstergelerinin, daha büyük bir dönem kullandığımızda trend değişikliğine tepki verme hızlarını artırdığı bilinmektedir. Ancak daha fazla yanlış sinyal de ortaya çıkıyor.
Alternatif yol, hesaplama dönemini alt tarafa değiştirmek değil, birkaç zaman diliminde takip etmektir.
Şek. 3. RSI ve AC sinyallerine dayalı farklı zaman dilimlerindeki trend
Fiyat hareketi trendi, kriterlerimiz ve RSI ve AC göstergeleri nedeniyle şekilde açıkça görülebilir. Gelin detaylı bir şekilde inceleyelim.
M1'de hareket ve hız: güçlü hareket, AC indeksi 4, RSI indeks derinliği 2'dir. M5 aynı derinliğe sahiptir ancak hız 1'e eşittir. Aynı hareket M15'te de belirlendi ancak alt grafiklere göre daha az görülüyor. 30 dakika ve bir saatlik grafikten bahsetmişken, M30'un zaten bir sinyale sahip olduğunu ve H1'in yavaşlama ve hatta olası bir geri dönüş sinyali olduğunu görmek etkileyici.
Bu örnek bize önemli bir sonuç veriyor:
4. Alım satım stratejisinin bir expert advisor şeklinde uygulanması
Expert advisor kodu:
//+------------------------------------------------------------------+ //| tester.mq4 | //| Alexander Fedosov | //+------------------------------------------------------------------+ #property copyright "Alexander Fedosov" #property strict #include <trading.mqh> //Support library for trade operations //+------------------------------------------------------------------+ //| Parameters | //+------------------------------------------------------------------+ input int SL = 40; // Stop loss input int TP = 70; // Take profit input bool Lot_perm=true; // Lot of balance? input double lt=0.01; // Lot input double risk = 2; // Risk of deposit, % input int slippage= 5; // Slippage input int magic=2356; // Magic number input int period=8; // RSI indicator period input ENUM_TIMEFRAMES tf=PERIOD_CURRENT; // Working timeframe int dg,index_rsi,index_ac; trading tr; //+------------------------------------------------------------------+ //| Expert Advisor initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- determining variables for auxiliary class of trading functions //--- language for displaying errors, Russian of by default. tr.ruErr=true; tr.Magic=magic; tr.slipag=slippage; tr.Lot_const=Lot_perm; tr.Lot=lt; tr.Risk=risk; //--- number of attempts. tr.NumTry=5; //--- determining decimal places on the current chart dg=tr.Dig(); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Main calculation function | //+------------------------------------------------------------------+ void OnTick() { depth_trend(); speed_ac(); //--- check for presence of open orders if(OrdersTotal()<1) { //--- check of buy conditions if(Buy()) tr.OpnOrd(OP_BUY,tr.Lots(),Ask,SL*dg,TP*dg); //--- check of sell conditions if(Sell()) tr.OpnOrd(OP_SELL,tr.Lots(),Bid,SL*dg,TP*dg); } //--- are there open orders? if(OrdersTotal()>0) { //--- check and close sell orders which meet closing conditions. if(Sell_close()) tr.ClosePosAll(OP_SELL); //--- check and close buy orders which meet closing conditions. if(Buy_close()) tr.ClosePosAll(OP_BUY); } } //+------------------------------------------------------------------+ //| Function for determining the trend depth | //+------------------------------------------------------------------+ void depth_trend() { //--- determining buy index double rsi=iRSI(Symbol(),tf,period,PRICE_CLOSE,0); index_rsi = 0; if(rsi>90.0) index_rsi=4; else if(rsi>80.0) index_rsi=3; else if(rsi>70.0) index_rsi=2; else if(rsi>60.0) index_rsi=1; else if(rsi<10.0) index_rsi=-4; else if(rsi<20.0) index_rsi=-3; else if(rsi<30.0) index_rsi=-2; else if(rsi<40.0) index_rsi=-1; } //+------------------------------------------------------------------+ //| Function for determining the trend speed | //+------------------------------------------------------------------+ void speed_ac() { double ac[]; ArrayResize(ac,5); for(int i=0; i<5; i++) ac[i]=iAC(Symbol(),tf,i); index_ac=0; //--- buy signal if(ac[0]>ac[1]) index_ac=1; else if(ac[0]>ac[1] && ac[1]>ac[2]) index_ac=2; else if(ac[0]>ac[1] && ac[1]>ac[2] && ac[2]>ac[3]) index_ac=3; else if(ac[0]>ac[1] && ac[1]>ac[2] && ac[2]>ac[3] && ac[3]>ac[4]) index_ac=4; //--- sell signal else if(ac[0]<ac[1]) index_ac=-1; else if(ac[0]<ac[1] && ac[1]<ac[2]) index_ac=-2; else if(ac[0]<ac[1] && ac[1]<ac[2] && ac[2]<ac[3]) index_ac=-3; else if(ac[0]<ac[1] && ac[1]<ac[2] && ac[2]<ac[3] && ac[3]<ac[4]) index_ac=-4; } //+------------------------------------------------------------------+ //| Function for checking buy conditions | //+------------------------------------------------------------------+ bool Buy() { bool res=false; if((index_rsi==2 && index_ac>=1) || (index_rsi==3 && index_ac==1)) res=true; return (res); } //+------------------------------------------------------------------+ //| Function for checking sell conditions | //+------------------------------------------------------------------+ bool Sell() { bool res=false; if((index_rsi==-2 && index_ac<=-1) || (index_rsi==-3 && index_ac==-1)) res=true; return (res); } //+------------------------------------------------------------------+ //| Function for checking buy position closing conditions | //+------------------------------------------------------------------+ bool Buy_close() { bool res=false; if(index_rsi>2 && index_ac<0) res=true; return (res); } //+------------------------------------------------------------------+ //| Function for checking sell position closing conditions | //+------------------------------------------------------------------+ bool Sell_close() { bool res=false; if(index_rsi<-2 && index_ac>0) res=true; return (res); }
Yalnızca iki parametre kullanarak küçük bir optimizasyon gerçekleştirdik: tf (çalışma zaman dilimi) ve dönem (RSI gösterge dönemi).
M15'te aşağıdaki sonuçları elde ettik:
Şek. 4. Expert Advisor geriye dönük test sonuçları
Sonuç
Piyasa davranışını tahmin etmek imkansız olduğundan, trendin başlangıcını ve sonunu belirlemek tüm dünyadaki yatırımcılar için karmaşık görevlerden biridir.
Ancak mevcut trendde giriş ve çıkış anlarını belirlemek ve buna bağlı olarak oldukça yüksek kar elde etmek son derece mümkündür. Ayrıca hareket hızının genel tespiti ve dinamik takibi bu konuda yardımcı olabilir.
Başarılı alım satımlar dilerim.
MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal makale: https://www.mql5.com/ru/articles/1747
- Ücretsiz ticaret 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