Bu işlev, OBJ_HLINE nesnesini geçerli çizelgede yatay bir çizgiye ayarlar.
cl - OBJ_HLINE yatay çizgi nesnesinin rengi. Gerekli parametre.
nm - Nesnenin adı. Varsayılan değeri "" geçerken ad olarak mevcut çubuğun açılış zamanı kullanılır.
p1 - Nesneyi ayarlamak için fiyat seviyesi. Varsayılan değer 0'dır - mevcut Teklif fiyatı.
st - Çizgi stili. Geçerli değerler STYLE_SOLID (varsayılan) - düz çizgi, STYLE_DASH - kesikli çizgi, STYLE_DOT - kesikli çizgi, STYLE_DASHDOT - çizgi-nokta çizgi, STYLE_DASHDOTDOT - çift noktalı çizgi-nokta çizgisidir.
wd - Çizgi kalınlığı. Varsayılan değer 0'dır .
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 30.03.2008 |//| Описание : Установка объекта OBJ_HLINE горизонтальная линия |//+----------------------------------------------------------------------------+//| Параметры: |//| cl - цвет линии |//| nm - наименование ("" - время открытия текущего бара) |//| p1 - ценовой уровень (0 - Bid) |//| st - стиль линии (0 - простая линия) |//| wd - ширина линии (0 - по умолчанию) |//+----------------------------------------------------------------------------+void SetHLine( color cl, string nm= "" , double p1= 0 , int st= 0 , int wd= 1 ) {
if (nm== "" ) nm=DoubleToStr(Time[ 0 ], 0 );
if (p1<= 0 ) p1=Bid;
if ( ObjectFind (nm)< 0 ) ObjectCreate (nm, OBJ_HLINE , 0 , 0 , 0 );
ObjectSet(nm, OBJPROP_PRICE1, p1);
ObjectSet(nm, OBJPROP_COLOR , cl);
ObjectSet(nm, OBJPROP_STYLE , st);
ObjectSet(nm, OBJPROP_WIDTH , wd);
}
SetVLine() işlevi.
Bu işlev, OBJ_VLINE nesnesini geçerli çizelgede dikey bir çizgiye ayarlar.
cl - DİKEY HATTI nesnesinin rengi. Gerekli parametre.
nm - Nesnenin adı. Varsayılan değeri - "" geçerken ad olarak mevcut çubuğun açılış zamanı kullanılır.
t1 - Nesnenin kurulum süresi. Varsayılan değer 0'dır - mevcut çubuğun açılma zamanı.
st - Çizgi stili. Geçerli değerler STYLE_SOLID (varsayılan), STYLE_DASH , STYLE_DOT , STYLE_DASHDOT , STYLE_DASHDOTDOT .
wd - Çizgi kalınlığı. Varsayılan değer 1'dir .
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 02.07.2008 |//| Описание : Установка объекта OBJ_VLINE вертикальная линия |//+----------------------------------------------------------------------------+//| Параметры: |//| cl - цвет линии |//| nm - наименование ("" - время открытия текущего бара) |//| t1 - время (0 - время открытия текущего бара) |//| st - стиль линии (0 - простая линия) |//| wd - ширина линии (1 - по умолчанию) |//+----------------------------------------------------------------------------+void SetVLine( color cl, string nm= "" , datetime t1= 0 , int st= 0 , int wd= 1 ) {
if (nm== "" ) nm=DoubleToStr(Time[ 0 ], 0 );
if (t1<= 0 ) t1=Time[ 0 ];
if ( ObjectFind (nm)< 0 ) ObjectCreate (nm, OBJ_VLINE , 0 , 0 , 0 );
ObjectSet(nm, OBJPROP_TIME1, t1);
ObjectSet(nm, OBJPROP_COLOR , cl);
ObjectSet(nm, OBJPROP_STYLE , st);
ObjectSet(nm, OBJPROP_WIDTH , wd);
}
Bu işlev, OBJ_TREND nesnesini geçerli grafikteki eğilim çizgisine ayarlar.
cl - TREND LINE nesnesinin rengi. Gerekli parametre.
nm - Nesnenin adı. Varsayılan değeri - "" geçerken ad olarak mevcut çubuğun açılış zamanı kullanılır.
t1 - Nesnenin kurulum süresinin ilk koordinatı. Varsayılan değer 0 - onuncu çubuğun açılma zamanı.
p1 - Nesnenin kurulum fiyatının ilk koordinatı. Varsayılan değer 0 - onuncu çubuk düşük.
t2 - Nesnenin kurulum süresinin ikinci koordinatı. Varsayılan değer 0'dır - mevcut çubuğun açılma zamanı.
p2 - Nesnenin kurulum fiyatının ikinci koordinatı. Varsayılan değer 0 - mevcut çubuğun en düşük değeridir.
ry - RAY özelliğini işaretler. Varsayılan değer False'dır .
st - Çizgi stili. Geçerli değerler STYLE_SOLID (varsayılan), STYLE_DASH , STYLE_DOT , STYLE_DASHDOT , STYLE_DASHDOTDOT .
wd - Çizgi kalınlığı. Varsayılan değer 1'dir .
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 12.10.2007 |//| Описание : Установка объекта OBJ_TREND трендовая линия |//+----------------------------------------------------------------------------+//| Параметры: |//| cl - цвет линии |//| nm - наименование ( "" - время открытия текущего бара) |//| t1 - время открытия бара ( 0 - Time[10] |//| p1 - ценовой уровень ( 0 - Low[10]) |//| t2 - время открытия бара ( 0 - текущий бар) |//| p2 - ценовой уровень ( 0 - Bid) |//| ry - луч (False - по умолчанию) |//| st - стиль линии ( 0 - простая линия) |//| wd - ширина линии ( 1 - по умолчанию) |//+----------------------------------------------------------------------------+void SetTLine( color cl, string nm= "" ,
datetime t1= 0 , double p1= 0 , datetime t2= 0 , double p2= 0 ,
bool ry=False, int st= 0 , int wd= 1 ) {
if (nm== "" ) nm=DoubleToStr(Time[ 0 ], 0 );
if (t1<= 0 ) t1=Time[ 10 ];
if (p1<= 0 ) p1=Low[ 10 ];
if (t2<= 0 ) t2=Time[ 0 ];
if (p2<= 0 ) p2=Bid;
if ( ObjectFind (nm)< 0 ) ObjectCreate (nm, OBJ_TREND , 0 , 0 , 0 , 0 , 0 );
ObjectSet(nm, OBJPROP_TIME1 , t1);
ObjectSet(nm, OBJPROP_PRICE1, p1);
ObjectSet(nm, OBJPROP_TIME2 , t2);
ObjectSet(nm, OBJPROP_PRICE2, p2);
ObjectSet(nm, OBJPROP_COLOR , cl);
ObjectSet(nm, OBJPROP_RAY , ry);
ObjectSet(nm, OBJPROP_STYLE , st);
ObjectSet(nm, OBJPROP_WIDTH , wd);
}
SetTLineByAngle() işlevi.
Bu fonksiyon, trend çizgisinin OBJ_TRENDBYANGLE nesnesini mevcut grafiğin eğimine göre ayarlar.
cl - TREND LINE nesnesinin rengi. Gerekli parametre.
nm - Nesnenin adı. Varsayılan değeri - "" geçerken ad olarak mevcut çubuğun açılış zamanı kullanılır.
t1 - Nesnenin kurulum süresinin ilk koordinatı. Varsayılan değer 0 - onuncu çubuğun açılma zamanı.
p1 - Nesnenin kurulum fiyatının ilk koordinatı. Varsayılan değer 0 - onuncu çubuk düşük.
t2 - Nesnenin kurulum süresinin ikinci koordinatı. Varsayılan değer 0'dır - mevcut çubuğun açılma zamanı.
p2 - Nesnenin kurulum fiyatının ikinci koordinatı. Bu parametre bir çeşit anahtardır. Sıfır olmayan değeri, bu işlevi SetTLine() işlevine eşitler, yani eğilim çizgisi zaman/fiyat koordinat çifti kullanılarak çizilir ve eğilim çizgisi eğiminin değeri yok sayılır. Varsayılan değer 0'dır - eğime dayalı bir trend çizgisi oluşturma.
an - Derece cinsinden eğim açısı. Varsayılan değer - 0 - yatay çizgi.
ry - RAY özelliğini işaretler. Varsayılan değer False'dır .
st - Çizgi stili. Geçerli değerler STYLE_SOLID (varsayılan), STYLE_DASH , STYLE_DOT , STYLE_DASHDOT , STYLE_DASHDOTDOT .
wd - Çizgi kalınlığı. Varsayılan değer 1'dir .
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 12.10.2007 |//| Описание : Установка объекта OBJ_TRENDBYANGLE трендовая линия по углу |//+----------------------------------------------------------------------------+//| Параметры: |//| cl - цвет линии |//| nm - наименование ( "" - время открытия текущего бара) |//| t1 - время открытия бара ( 0 - Time[10] |//| p1 - ценовой уровень ( 0 - Low[10]) |//| t2 - время открытия бара ( 0 - время открытия текущего бара) |//| p2 - ценовой уровень ( 0 - по углу) |//| an - угол ( 0 - по умолчанию) |//| ry - луч (False - не луч) |//| st - стиль линии ( 0 - простая линия) |//| wd - ширина линии ( 1 - по умолчанию) |//+----------------------------------------------------------------------------+void SetTLineByAngle( color cl, string nm= "" ,
datetime t1= 0 , double p1= 0 , datetime t2= 0 , double p2= 0 ,
double an= 0 , bool ry=False, int st= 0 , int wd= 1 ) {
if (nm== "" ) nm=DoubleToStr(Time[ 0 ], 0 );
if (t1<= 0 ) t1=Time[ 10 ];
if (p1<= 0 ) p1=Low[ 10 ];
if (t2<= 0 ) t2=Time[ 0 ];
if ( ObjectFind (nm)< 0 ) ObjectCreate (nm, OBJ_TRENDBYANGLE , 0 , 0 , 0 );
ObjectSet(nm, OBJPROP_TIME1 , t1);
ObjectSet(nm, OBJPROP_PRICE1, p1);
ObjectSet(nm, OBJPROP_TIME2 , t2);
if (p2> 0 ) ObjectSet(nm, OBJPROP_PRICE2, p2);
else ObjectSet(nm, OBJPROP_ANGLE , an);
ObjectSet(nm, OBJPROP_COLOR , cl);
ObjectSet(nm, OBJPROP_RAY , ry);
ObjectSet(nm, OBJPROP_STYLE , st);
ObjectSet(nm, OBJPROP_WIDTH , wd);
}
Bu işlev, nesnenin OBJ_ARROW simgesini geçerli grafiğe ayarlar.
cd - Simge kodu. Gerekli parametre.
cl - Simge rengi. Gerekli parametre.
nm - Nesnenin adı. Varsayılan değeri - "" geçerken ad olarak mevcut çubuğun açılış zamanı kullanılır.
t1 - Nesnenin kurulum süresinin ilk koordinatı. Varsayılan değer 0'dır - mevcut çubuğun açılma zamanı.
p1 - Nesnenin kurulum fiyatının ilk koordinatı. Varsayılan değer 0'dır - mevcut Teklif fiyatı.
sz - Simge boyutu. Varsayılan değer 0'dır .
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 12.10.2007 |//| Описание : Установка значка на графике, объекта OBJ_ARROW. |//+----------------------------------------------------------------------------+//| Параметры: |//| cd - код значка |//| cl - цвет значка |//| nm - наименование ("" - время открытия текущего бара) |//| t1 - время открытия бара (0 - текущий бар) |//| p1 - ценовой уровень (0 - Bid) |//| sz - размер значка (0 - по умолчанию) |//+----------------------------------------------------------------------------+void SetArrow( int cd, color cl,
string nm= "" , datetime t1= 0 , double p1= 0 , int sz= 0 ) {
if (nm== "" ) nm=DoubleToStr(Time[ 0 ], 0 );
if (t1<= 0 ) t1=Time[ 0 ];
if (p1<= 0 ) p1=Bid;
if ( ObjectFind (nm)< 0 ) ObjectCreate (nm, OBJ_ARROW , 0 , 0 , 0 );
ObjectSet(nm, OBJPROP_TIME1 , t1);
ObjectSet(nm, OBJPROP_PRICE1 , p1);
ObjectSet(nm, OBJPROP_ARROWCODE , cd);
ObjectSet(nm, OBJPROP_COLOR , cl);
ObjectSet(nm, OBJPROP_WIDTH , sz);
}
SetLabel() işlevi.
Bu işlev, OBJ_LABEL nesnesini geçerli grafikte bir metin etiketine ayarlar.
nm - Nesnenin adı. Gerekli parametre.
tx - Metin. Gerekli parametre.
cl - Etiket rengi. Gerekli parametre.
xd - Bağlantı açısına göre piksel cinsinden X koordinatı. Gerekli parametre.
yd - Bağlantı açısına göre piksel cinsinden Y koordinatı. Gerekli parametre.
cr - Ankraj açısı numarası. Geçerli değerler: 0 - sol üst, 1 - sağ üst, 2 - sol alt, 3 - sağ alt. Varsayılan değer 0'dır .
fs - Yazı tipi boyutu. Varsayılan değer 9'dur .
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 12.10.2007 |//| Описание : Установка текстовой метки, объект OBJ_LABEL. |//+----------------------------------------------------------------------------+//| Параметры: |//| nm - наименование объекта |//| tx - текст |//| cl - цвет метки |//| xd - координата X в пикселах |//| yd - координата Y в пикселах |//| cr - номер угла привязки (0 - левый верхний, |//| 1 - правый верхний, |//| 2 - левый нижний, |//| 3 - правый нижний ) |//| fs - размер шрифта (9 - по умолчанию ) |//+----------------------------------------------------------------------------+void SetLabel( string nm, string tx, color cl, int xd, int yd, int cr= 0 , int fs= 9 ) {
if ( ObjectFind (nm)< 0 ) ObjectCreate (nm, OBJ_LABEL , 0 , 0 , 0 );
ObjectSetText(nm, tx, fs);
ObjectSet(nm, OBJPROP_COLOR , cl);
ObjectSet(nm, OBJPROP_XDISTANCE , xd);
ObjectSet(nm, OBJPROP_YDISTANCE , yd);
ObjectSet(nm, OBJPROP_CORNER , cr);
ObjectSet(nm, OBJPROP_FONTSIZE , fs);
}
Bu fonksiyon iki doğrunun kesiştiği noktanın koordinatlarını hesaplar. Her çizgi, noktalarının bir çift koordinatıyla tanımlanır. İşleve parametre olarak üç dizi iletilir:
x - Bir dizi apsis. Dört öğe içermelidir: x[0] , x[1] - ilk satırın apsisi, x[2] , x[3] - ikinci satırın apsisi.
y - Bir dizi koordinat. Dört öğe içermelidir: y[0] , y[1] - ilk satırın koordinatları, y[0] , y[1] - ikinci satırın koordinatları.
t - İki çizginin gerekli kesişme noktasının bir koordinat dizisi. İşlevin normal yürütülmesinden sonra, bu dizi iki öğe içerecektir: t[0] - iki çizginin istenen kesişme noktasının apsisi ve t[1] - aynı noktanın ordinatı.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 12.10.2007 |//| Описание : Вычисляет координаты точки пересечения двух прямых. |//| Каждая прямая задаётся парой координат своих точек. |//+----------------------------------------------------------------------------+//| Параметры: |//| x - массив абсцисс x[0], x[1] - первая прямая |//| x[2], x[3] - вторая прямая |//| y - массив ординат y[0], y[1] - первая прямая |//| y[0], y[1] - вторая прямая |//| t - массив искомых координат t[0] - абсцисса |//| t[1] - ордината |//+----------------------------------------------------------------------------+void CrossPointOfLines( double & x[], double & y[], double & t[]) {
double z=(y[ 3 ]-y[ 2 ])*(x[ 1 ]-x[ 0 ])-(y[ 1 ]-y[ 0 ])*(x[ 3 ]-x[ 2 ]);
ArrayResize (t, 2 );
ArrayInitialize (t, 0.0 );
if (z== 0 ) Print ( "CrossPointOfLines(): Не удалось найти точку пересечения!" );
else {
double xy1=x[ 1 ]*y[ 0 ]-x[ 0 ]*y[ 1 ];
double xy2=x[ 3 ]*y[ 2 ]-x[ 2 ]*y[ 3 ];
t[ 0 ]= NormalizeDouble ((xy1*(x[ 3 ]-x[ 2 ])-xy2*(x[ 1 ]-x[ 0 ]))/z, 0 );
t[ 1 ]=(xy1*(y[ 3 ]-y[ 2 ])-xy2*(y[ 1 ]-y[ 0 ]))/z;
}
}
SetRegression() işlevi.
Bu işlev, OBJ_REGRESSION nesnesini geçerli çizelgede doğrusal regresyon kanalına ayarlar.
cl - Nesnenin rengi. Gerekli parametre.
nm - Nesnenin adı. Varsayılan değeri - "" geçerken ad olarak mevcut çubuğun açılış zamanı kullanılır.
t1 - Nesnenin kurulum süresinin ilk koordinatı. Varsayılan değer 0 - onuncu çubuğun açılma zamanı.
t2 - Nesnenin kurulum süresinin ikinci koordinatı. Varsayılan değer 0'dır - mevcut çubuğun açılma zamanı.
ry - RAY özelliğinin bayrağı. Varsayılan değer False'dır .
st - Çizgi stili. Geçerli değerler STYLE_SOLID (varsayılan), STYLE_DASH , STYLE_DOT , STYLE_DASHDOT , STYLE_DASHDOTDOT .
wd - Çizgi kalınlığı. Varsayılan değer 1'dir .
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 12.10.2007 |//| Описание : Установка объекта OBJ_REGRESSION канал линейной регрессии. |//+----------------------------------------------------------------------------+//| Параметры: |//| cl - цвет линии |//| nm - наименование ( "" - время открытия текущего бара) |//| t1 - время открытия бара ( 0 - Time[10]) |//| t2 - время открытия бара ( 0 - Time[0]) |//| ry - луч (False - по умолчанию) |//| st - стиль линии ( 0 - простая линия) |//| wd - ширина линии ( 1 - по умолчанию) |//+----------------------------------------------------------------------------+void SetRegression( color cl, string nm= "" , datetime t1= 0 , datetime t2= 0 ,
bool ry=False, int st= STYLE_SOLID , int wd= 1 ) {
if (nm== "" ) nm=DoubleToStr(Time[ 0 ], 0 );
if (t1<= 0 ) t1=Time[ 10 ];
if (t2<= 0 ) t2=Time[ 0 ];
if ( ObjectFind (nm)< 0 ) ObjectCreate (nm, OBJ_REGRESSION , 0 , 0 , 0 , 0 , 0 );
ObjectSet(nm, OBJPROP_TIME1, t1);
ObjectSet(nm, OBJPROP_TIME2, t2);
ObjectSet(nm, OBJPROP_COLOR , cl);
ObjectSet(nm, OBJPROP_RAY , ry);
ObjectSet(nm, OBJPROP_STYLE , st);
ObjectSet(nm, OBJPROP_WIDTH , wd);
}
Düz bir çizginin denklemi. Bu fonksiyon, grafikte rastgele iki noktadan çizilen düz bir çizgi ile kesişme noktasında X'in apsisi için Y koordinatının değerini hesaplar. İşlev, aşağıdaki gerekli parametreleri kabul eder:
x1 , y1 - İlk noktanın koordinatları.
x2 , y2 - İkinci noktanın koordinatları.
x - Apsisi Y koordinatını hesaplayacak değer.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 12.10.2007 |//| Описание : Уравнение прямой. |//| Вычисляет значение Y для X в точке пересечения с прямой. |//+----------------------------------------------------------------------------+//| Параметры: |//| x1,y1 - координаты первой точки, |//| x2,y2 - координаты второй точки, |//| x - значение, для которого вычислить Y |//+----------------------------------------------------------------------------+double EquationDirect( double x1, double y1, double x2, double y2, double x) {
if (x2==x1) return (y1);
return ((y2-y1)/(x2-x1)*(x-x1)+y1);
}
GetArrowInterval() işlevi.
Bu işlevi, sinyal göstergeleri, yani çıktıda net bir alım veya satım sinyali veren göstergeler geliştirmenin kolaylığını artırmak için yazdım. Genellikle böyle bir göstergenin sinyalini, ilgili çubuğun üst kısmının üzerinde bir aşağı ok şeklinde veya ilgili çubuğun alt kısmının altında bir yukarı ok şeklinde yaparım. Okun çubuğa "girmemesi" için genellikle "altında" ve "yukarıda" değerler olarak birkaç nokta alındı. Örneğin, yalnızca saatlerce amaçlanan tek bir zaman dilimi göstergesi durumunda özel bir sorun yoktu. Her zaman dilimi için kendi "altında" ve "üstünde" değerlerim vardı. Ancak çoklu çerçeve göstergeleri için GetArrowInterval() işlevinin hizmetlerini kullanmak zorunda kaldım:
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 12.10.2007 |//+----------------------------------------------------------------------------+//| Описание : Возвращает интервал установки сигнальных указателей |//| Параметры: |//| pr - процент относительно ценового размера окна |//+----------------------------------------------------------------------------+int GetArrowInterval( int pr= 7 ) {
if (pr<= 0 ) pr= 7 ;
return ((WindowPriceMax()-WindowPriceMin())/ 100 *pr/ Point );
}
Bu fonksiyon en yakın aşağı fraktalını arar ve fiyat seviyesini döndürür. Bu işlevin bir özelliği, keyfi bir fraktal formül ayarlama yeteneğidir. Standart, genel olarak kabul edilen fraktal formül bu 2-2'ye benziyor. Bu, solda 2 çubuk ve sağda 2 çubuk anlamına gelir. Ve bu işlevi kullanarak, 8-2 (solda 8 çubuk ve sağda 2 çubuk), 5-3 (solda 5 çubuk ve sağda 3 çubuk), vb. gibi çok egzotik fraktallar bile ayarlayabilirsiniz. . İşlev, aşağıdaki isteğe bağlı parametreleri kabul eder:
sy - Araç adı. "" veya NULL geçerli karakterdir. Varsayılan değer NULL'dur .
tf - Zaman çerçevesi. 0'ın varsayılan değeri geçerli karakterdir.
nr - Sağdaki çubuk sayısı. Varsayılan değer 2'dir .
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 07.10.2006 |//| Описание : Возвращает ценовой уровень ближайшего нижнего фрактала |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| tf - таймфрейм ( 0 - текущий таймфрейм) |//| nl - количество баров слева |//| nr - количество баров справа |//+----------------------------------------------------------------------------+double GetNearestDownFractal( string sy= "0" , int tf= 0 , int nl= 2 , int nr= 2 ) {
bool f;
int fb, i, nb=- 1 ;
if (sy== "" || sy== "0" ) sy= Symbol ();
if (nl< 1 ) nl= 1 ;
if (nr< 1 ) nr= 1 ;
fb=nr;
while (nb< 0 ) {
fb++;
f=True;
for (i=fb; i>fb-nr; i--) {
if (iLow(sy, tf, i)>iLow(sy, tf, i- 1 )) { f=False; break ; }
}
if (f) {
for (i=fb; i<fb+nl; i++) {
if (iLow(sy, tf, i)>iLow(sy, tf, i+ 1 )) { f=False; break ; }
}
if (f) { nb=fb; break ; }
}
}
return (iLow(sy, tf, nb));
}
GetNearestUpFractal() işlevi.
Bu fonksiyon en yakın yukarı fraktal arar ve fiyat seviyesini döndürür. Bu işlevin bir özelliği, keyfi bir fraktal formül ayarlama yeteneğidir. Standart, genel olarak kabul edilen fraktal formül bu 2-2'ye benziyor. Bu, solda 2 çubuk ve sağda 2 çubuk anlamına gelir. Ve bu işlevi kullanarak, 8-2 (solda 8 çubuk ve sağda 2 çubuk), 5-3 (solda 5 çubuk ve sağda 3 çubuk), vb. gibi çok egzotik fraktallar bile ayarlayabilirsiniz. . İşlev, aşağıdaki isteğe bağlı parametreleri kabul eder:
sy - Araç adı. "" veya NULL geçerli karakterdir. Varsayılan değer NULL'dur .
tf - Zaman çerçevesi. 0'ın varsayılan değeri geçerli karakterdir.
nl - Soldaki çubuk sayısı. Varsayılan değer 2'dir .
nr - Sağdaki çubuk sayısı. Varsayılan değer 2'dir .
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 07.10.2006 |//| Описание : Возвращает ближайший верхний фрактал |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента (NULL - текущий символ) |//| tf - таймфрейм ( 0 - текущий таймфрейм) |//| nl - количество баров слева |//| nr - количество баров справа |//+----------------------------------------------------------------------------+double GetNearestUpFractal( string sy= "0" , int tf= 0 , int nl= 2 , int nr= 2 ) {
bool f;
int fb, i, nb=- 1 ;
if (sy== "" || sy== "0" ) sy= Symbol ();
if (nl< 1 ) nl= 1 ;
if (nr< 1 ) nr= 1 ;
fb=nr;
while (nb< 0 ) {
fb++;
f=True;
for (i=fb; i>fb-nr; i--) {
if (iHigh(sy, tf, i)<iHigh(sy, tf, i- 1 )) { f=False; break ; }
}
if (f) {
for (i=fb; i<fb+nl; i++) {
if (iHigh(sy, tf, i)<iHigh(sy, tf, i+ 1 )) { f=False; break ; }
}
if (f) { nb=fb; break ; }
}
}
return (iHigh(sy, tf, nb));
}
ArrayMin() işlevi.
Bu işlev , bir dizinin minimum öğesinin değerini döndürür.
ArrayAvg() işlevi.
Bu işlev , bir dizinin öğelerinin aritmetik ortalamasını döndürür.
ArrayAvGeom() işlevi.
Bu işlev, dizi öğelerinin geometrik ortalamasını döndürür.
SetHL() işlevi.
Bu işlev, OBJ_HLINE nesnesini geçerli çizelgede yatay bir çizgiye ayarlar.
SetVLine() işlevi.
Bu işlev, OBJ_VLINE nesnesini geçerli çizelgede dikey bir çizgiye ayarlar.
SetTline() işlevi.
Bu işlev, OBJ_TREND nesnesini geçerli grafikteki eğilim çizgisine ayarlar.
SetTLineByAngle() işlevi.
Bu fonksiyon, trend çizgisinin OBJ_TRENDBYANGLE nesnesini mevcut grafiğin eğimine göre ayarlar.
SetArrow() işlevi.
Bu işlev, nesnenin OBJ_ARROW simgesini geçerli grafiğe ayarlar.
SetLabel() işlevi.
Bu işlev, OBJ_LABEL nesnesini geçerli grafikte bir metin etiketine ayarlar.
CrossPointOfLines() işlevi.
Bu fonksiyon iki doğrunun kesiştiği noktanın koordinatlarını hesaplar. Her çizgi, noktalarının bir çift koordinatıyla tanımlanır. İşleve parametre olarak üç dizi iletilir:
SetRegression() işlevi.
Bu işlev, OBJ_REGRESSION nesnesini geçerli çizelgede doğrusal regresyon kanalına ayarlar.
EquationDirect() işlevi.
Düz bir çizginin denklemi. Bu fonksiyon, grafikte rastgele iki noktadan çizilen düz bir çizgi ile kesişme noktasında X'in apsisi için Y koordinatının değerini hesaplar. İşlev, aşağıdaki gerekli parametreleri kabul eder:
GetArrowInterval() işlevi.
Bu işlevi, sinyal göstergeleri, yani çıktıda net bir alım veya satım sinyali veren göstergeler geliştirmenin kolaylığını artırmak için yazdım. Genellikle böyle bir göstergenin sinyalini, ilgili çubuğun üst kısmının üzerinde bir aşağı ok şeklinde veya ilgili çubuğun alt kısmının altında bir yukarı ok şeklinde yaparım. Okun çubuğa "girmemesi" için genellikle "altında" ve "yukarıda" değerler olarak birkaç nokta alındı. Örneğin, yalnızca saatlerce amaçlanan tek bir zaman dilimi göstergesi durumunda özel bir sorun yoktu. Her zaman dilimi için kendi "altında" ve "üstünde" değerlerim vardı. Ancak çoklu çerçeve göstergeleri için GetArrowInterval() işlevinin hizmetlerini kullanmak zorunda kaldım:
FindNearFractal() işlevi.
Bu fonksiyon en yakın fraktalı arar ve fiyat seviyesini döndürür. İşlev, aşağıdaki isteğe bağlı parametreleri kabul eder:
GetExtremumZZBar() işlevi.
Bu işlev, standart özel ZigZag göstergesinin uç noktasını arar ve çubuk numarasını döndürür. İşlev, aşağıdaki isteğe bağlı parametreleri kabul eder:
GetExtremumZZPrice() işlevi.
Bu işlev, standart özel ZigZag göstergesinin uç noktasını arar ve fiyat seviyesini döndürür. İşlev, aşağıdaki isteğe bağlı parametreleri kabul eder:
GetNearestDownFractal() işlevi.
Bu fonksiyon en yakın aşağı fraktalını arar ve fiyat seviyesini döndürür. Bu işlevin bir özelliği, keyfi bir fraktal formül ayarlama yeteneğidir. Standart, genel olarak kabul edilen fraktal formül bu 2-2'ye benziyor. Bu, solda 2 çubuk ve sağda 2 çubuk anlamına gelir. Ve bu işlevi kullanarak, 8-2 (solda 8 çubuk ve sağda 2 çubuk), 5-3 (solda 5 çubuk ve sağda 3 çubuk), vb. gibi çok egzotik fraktallar bile ayarlayabilirsiniz. . İşlev, aşağıdaki isteğe bağlı parametreleri kabul eder:
GetNearestUpFractal() işlevi.
Bu fonksiyon en yakın yukarı fraktal arar ve fiyat seviyesini döndürür. Bu işlevin bir özelliği, keyfi bir fraktal formül ayarlama yeteneğidir. Standart, genel olarak kabul edilen fraktal formül bu 2-2'ye benziyor. Bu, solda 2 çubuk ve sağda 2 çubuk anlamına gelir. Ve bu işlevi kullanarak, 8-2 (solda 8 çubuk ve sağda 2 çubuk), 5-3 (solda 5 çubuk ve sağda 3 çubuk), vb. gibi çok egzotik fraktallar bile ayarlayabilirsiniz. . İşlev, aşağıdaki isteğe bağlı parametreleri kabul eder: