"Orhan %R" İndikatörü: Kapanış Fiyatlarının, Parametre olarak verilen periyottaki En Düşük veya En Yüksek fiyatlara Yüzdesel uzaklığını döndürür.Periyot ve Ortalama Alınacak Bar Sayısı şeklinde iki parametre alır.
L.Williams tarafından geliştirilen "Williams %R" ve George Lane tarafından geliştirilen "Stochastic" indikatörlerinin birleştirilmesi ve her yönde daha doğru ve simetrik şekilde ölçeklendirilmesi ile meydana gelmiştir.
Williams %R Nasıl Hesaplanıyor:
https://www.investopedia.com/terms/w/williamsr.asp
Stochastic Oscillator Nasıl Hesaplanıyor:
https://www.investopedia.com/terms/s...oscillator.asp
Orhan%R, Williams%R, StochasticOsc ve StochasticFast indikatörleri aynı işi yaparlar, grafik çıktılar nerdeyse aynıdır fakat ölçekleme şekilleri ile biribirinden ayrılırlar.
Orhan %R değeri sıfırın üzerindeki değerleri StochasticOsc ile birebir aynıdır.
Orhan %R değeri sıfırın altındaki değerleri Williams%R ile birebir aynıdır.
Aşağıdaki Resimde özellik kıyaslamaları görünmektedir.
Orhan %R İndikatörü diğerlerinden daha hassas ve simetrik değer aralığına sahip ve salınımları yumuşatmak için parametre almaktadır.
https://image.prntscr.com/image/WsOt...466-pF_T6w.png
https://prnt.sc/llgei3
"Orhan %R" iDeal Sistem Kodu
PHP Code:
Sistem.Cizgiler[0].Deger = Lib.OrhanR(Sistem,14,5); //Panel 2
Sistem.Cizgiler[1].Deger = Sistem.WilliamsR(14); //Panel 3
Sistem.Cizgiler[2].Deger = Sistem.StochasticOsc(14, 5); //Panel 4
Sistem.Cizgiler[3].Deger = Sistem.StochasticFast(14, 1); //Panel 5 (ikinci parametre işlevsizdir.)
"Orhan %R" iDeal Lib.cs Kodu
PHP Code:
using System;
using System.IO;
using System.Collections.Generic;
using System.Data;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Drawing;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Collections.Specialized;
using System.Runtime.InteropServices;
using System.ComponentModel;
using System.Linq;
namespace ideal
{
public class Lib
{
public List<float> OrhanR(dynamic Sistem, int pRangeCount, int MAPeriod)
{
List<float> C = Sistem.GrafikFiyatSec("Kapanis");
List<float> H = Sistem.GrafikFiyatSec("Yuksek");
List<float> L = Sistem.GrafikFiyatSec("Dusuk");
var orhanR = Sistem.Liste(0);
for (int i = pRangeCount; i < C.Count; i++)
{
float HMAX= H.GetRange(i - pRangeCount + 1, pRangeCount).Max();
float LMIN= L.GetRange(i - pRangeCount + 1, pRangeCount).Min();
float HMAXC= HMAX - C[i];
float HMINC= C[i] - LMIN;
orhanR[i] = (HMINC>HMAXC ? HMINC/(HMINC+HMAXC)*100 : HMAXC/(HMINC+HMAXC)*100*-1 );
}
return MAPeriod<=1 ? orhanR : Sistem.MA(orhanR,"Simple",MAPeriod);
}
}
}
https://image.prntscr.com/image/HAW4...4RqKwyypbA.png
https://prnt.sc/llgez2