nm - 개체의 이름입니다. 기본값 "" 을 전달할 때 현재 막대의 여는 시간이 이름으로 사용됩니다.
p1 - 객체 설정을 위한 가격 수준. 기본값은 0 - 현재 입찰 가격입니다.
st - 선 스타일. 유효한 값은 STYLE_SOLID (기본값) - 실선, STYLE_DASH - 파선, STYLE_DOT - 파선, STYLE_DASHDOT - 대시-도트 라인, STYLE_DASHDOTDOT - 이중 점이 있는 대시-도트 라인입니다.
wd - 선 두께. 기본값은 0 입니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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() 함수.
이 함수는 OBJ_VLINE 객체를 현재 차트의 수직선으로 설정합니다.
cl - VERTICAL LINE 객체의 색상. 필수 매개변수입니다.
nm - 개체의 이름입니다. 기본값을 전달할 때 - "" 현재 막대의 여는 시간이 이름으로 사용됩니다.
t1 - 개체의 설치 시간입니다. 기본값은 0 - 현재 막대의 여는 시간입니다.
st - 선 스타일. 유효한 값은 STYLE_SOLID (기본값), STYLE_DASH , STYLE_DOT , STYLE_DASHDOT , STYLE_DASHDOTDOT 입니다.
wd - 선 두께. 기본값은 1 입니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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);
}
nm - 개체의 이름입니다. 기본값을 전달할 때 - "" 현재 막대의 여는 시간이 이름으로 사용됩니다.
t1 - 개체 설치 시간의 첫 번째 좌표입니다. 기본값은 0 - 열 번째 막대 여는 시간입니다.
p1 - 객체 설치 가격의 첫 번째 좌표. 기본값은 0 - 낮은 10번째 막대입니다.
t2 - 개체 설치 시간의 두 번째 좌표입니다. 기본값은 0 - 현재 막대의 여는 시간입니다.
p2 - 물체의 설치 가격의 두 번째 좌표. 이 매개변수는 일종의 스위치입니다. 0이 아닌 값은 이 함수를 SetTLine() 함수와 동일시합니다. 즉, 추세선은 시간/가격 좌표 쌍을 사용하여 그려지고 추세선 기울기 값은 무시됩니다. 기본값은 0 입니다. 기울기를 기반으로 추세선을 만듭니다.
- 경사각(도). 기본값 - 0 - 수평선.
ry - 플래그 속성 RAY. 기본값은 False 입니다.
st - 선 스타일. 유효한 값은 STYLE_SOLID (기본값), STYLE_DASH , STYLE_DOT , STYLE_DASHDOT , STYLE_DASHDOTDOT 입니다.
wd - 선 두께. 기본값은 1 입니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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);
}
cr - 앵커 각도 번호. 유효한 값: 0 - 왼쪽 상단, 1 - 오른쪽 상단, 2 - 왼쪽 하단, 3 - 오른쪽 하단. 기본값은 0 입니다.
fs - 글꼴 크기. 기본값은 9 입니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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);
}
직선의 방정식. 이 함수는 그래프의 임의의 두 점을 통해 그린 직선과의 교차점에서 X 의 가로 좌표에 대한 Y- 좌표 값을 계산합니다. 이 함수는 다음 필수 매개변수를 허용합니다.
x1 , y1 - 첫 번째 점의 좌표입니다.
x2 , y2 - 두 번째 점의 좌표입니다.
x - 가로 좌표가 Y 세로 좌표를 계산하는 값입니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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() 함수.
신호 표시기, 즉 출력에서 명확한 매수 또는 매도 신호를 제공하는 지표 개발의 편의성을 개선하기 위해 이 함수를 작성했습니다. 나는 일반적으로 해당 막대 의 고점 위의 아래쪽 화살표 형태 또는 해당 막대의 저점 아래의위쪽 화살표 형태로 이러한 표시기의 신호를 만듭니다. 화살표가 막대에 "달리지 않도록" 여러 점을 일반적으로 "아래" 및 "위" 값으로 사용했습니다. 예를 들어 몇 시간 동안만 의도된 단일 기간 표시기의 경우에는 특별한 문제가 없었습니다. 각 기간에 대해 저만의 "아래" 및 "위" 값이 있었습니다. 그러나 다중 프레임 표시기의 경우 GetArrowInterval() 함수의 서비스를 사용해야 했습니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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 );
}
이 함수는 가장 가까운 다운 프랙탈을 검색하고 해당 가격 수준을 반환합니다. 이 함수의 특징은 임의의 프랙탈 공식을 설정하는 기능입니다. 일반적으로 허용되는 표준 프랙탈 공식은 다음과 같습니다. 2-2. 즉, 왼쪽에 2개의 막대와 오른쪽에 2개의 막대가 있습니다. 그리고 이 기능을 사용하면 8-2(왼쪽에 8개, 오른쪽에 2개), 5-3(왼쪽에 5개, 오른쪽에 3개) 등과 같은 매우 이국적인 프랙탈을 설정할 수도 있습니다. . 이 함수는 다음과 같은 선택적 매개변수를 허용합니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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() 함수.
이 함수는 가장 가까운 상향 프랙탈을 검색하고 해당 가격 수준을 반환합니다. 이 함수의 특징은 임의의 프랙탈 공식을 설정하는 기능입니다. 일반적으로 허용되는 표준 프랙탈 공식은 다음과 같습니다. 2-2. 즉, 왼쪽에 2개의 막대와 오른쪽에 2개의 막대가 있습니다. 그리고 이 기능을 사용하면 8-2(왼쪽에 8개, 오른쪽에 2개), 5-3(왼쪽에 5개, 오른쪽에 3개) 등과 같은 매우 이국적인 프랙탈을 설정할 수도 있습니다. . 이 함수는 다음과 같은 선택적 매개변수를 허용합니다.
sy - 도구 이름. "" 또는 NULL 은 현재 문자입니다. 기본값은 NULL 입니다.
tf - 기간. 기본값 0 은 현재 문자입니다.
nl - 왼쪽에 있는 막대의 수입니다. 기본값은 2 입니다.
nr - 오른쪽에 있는 막대의 수입니다. 기본값은 2 입니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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() 함수.
이 함수는 배열의 최소 요소 값을 반환합니다.
ArrayAvg() 함수.
이 함수는 배열 요소의 산술 평균을 반환합니다.
ArrayAvGeom() 함수.
이 함수는 배열 요소의 기하 평균을 반환합니다.
SetHL() 함수.
이 함수는 OBJ_HLINE 객체를 현재 차트의 수평선으로 설정합니다.
SetVLine() 함수.
이 함수는 OBJ_VLINE 객체를 현재 차트의 수직선으로 설정합니다.
SetTline() 함수.
이 함수는 OBJ_TREND 개체를 현재 차트의 추세선으로 설정합니다.
SetTLineByAngle() 함수.
이 함수는 현재 차트의 기울기에 따라 추세선의 OBJ_TRENDBYANGLE 객체를 설정합니다.
SetArrow() 함수.
이 함수는 개체 의 OBJ_ARROW 아이콘을 현재 차트로 설정합니다.
SetLabel() 함수.
이 함수는 OBJ_LABEL 개체를 현재 차트의 텍스트 레이블로 설정합니다.
CrossPointOfLines() 함수.
이 함수는 두 선이 교차하는 지점의 좌표를 계산합니다. 각 선은 점의 좌표 쌍으로 정의됩니다. 세 개의 배열이 매개변수로 함수에 전달됩니다.
SetRegression() 함수.
이 함수는 OBJ_REGRESSION 개체를 현재 차트의 선형 회귀 채널로 설정합니다.
EquationDirect() 함수.
직선의 방정식. 이 함수는 그래프의 임의의 두 점을 통해 그린 직선과의 교차점에서 X 의 가로 좌표에 대한 Y- 좌표 값을 계산합니다. 이 함수는 다음 필수 매개변수를 허용합니다.
GetArrowInterval() 함수.
신호 표시기, 즉 출력에서 명확한 매수 또는 매도 신호를 제공하는 지표 개발의 편의성을 개선하기 위해 이 함수를 작성했습니다. 나는 일반적으로 해당 막대 의 고점 위의 아래쪽 화살표 형태 또는 해당 막대의 저점 아래의 위쪽 화살표 형태로 이러한 표시기의 신호를 만듭니다. 화살표가 막대에 "달리지 않도록" 여러 점을 일반적으로 "아래" 및 "위" 값으로 사용했습니다. 예를 들어 몇 시간 동안만 의도된 단일 기간 표시기의 경우에는 특별한 문제가 없었습니다. 각 기간에 대해 저만의 "아래" 및 "위" 값이 있었습니다. 그러나 다중 프레임 표시기의 경우 GetArrowInterval() 함수의 서비스를 사용해야 했습니다.
FindNearFractal() 함수.
이 함수는 가장 가까운 프랙탈을 검색하고 해당 가격 수준을 반환합니다. 이 함수는 다음과 같은 선택적 매개변수를 허용합니다.
GetExtremumZZBar() 함수.
이 함수는 표준 사용자 지정 ZigZag 표시기 의 극한값을 검색하고 막대 번호를 반환합니다. 이 함수는 다음과 같은 선택적 매개변수를 허용합니다.
GetExtremumZZPrice() 함수.
이 함수는 표준 사용자 지정 ZigZag 표시기 의 극한값을 검색하고 해당 가격 수준을 반환합니다. 이 함수는 다음과 같은 선택적 매개변수를 허용합니다.
GetNearestDownFractal() 함수.
이 함수는 가장 가까운 다운 프랙탈을 검색하고 해당 가격 수준을 반환합니다. 이 함수의 특징은 임의의 프랙탈 공식을 설정하는 기능입니다. 일반적으로 허용되는 표준 프랙탈 공식은 다음과 같습니다. 2-2. 즉, 왼쪽에 2개의 막대와 오른쪽에 2개의 막대가 있습니다. 그리고 이 기능을 사용하면 8-2(왼쪽에 8개, 오른쪽에 2개), 5-3(왼쪽에 5개, 오른쪽에 3개) 등과 같은 매우 이국적인 프랙탈을 설정할 수도 있습니다. . 이 함수는 다음과 같은 선택적 매개변수를 허용합니다.
GetNearestUpFractal() 함수.
이 함수는 가장 가까운 상향 프랙탈을 검색하고 해당 가격 수준을 반환합니다. 이 함수의 특징은 임의의 프랙탈 공식을 설정하는 기능입니다. 일반적으로 허용되는 표준 프랙탈 공식은 다음과 같습니다. 2-2. 즉, 왼쪽에 2개의 막대와 오른쪽에 2개의 막대가 있습니다. 그리고 이 기능을 사용하면 8-2(왼쪽에 8개, 오른쪽에 2개), 5-3(왼쪽에 5개, 오른쪽에 3개) 등과 같은 매우 이국적인 프랙탈을 설정할 수도 있습니다. . 이 함수는 다음과 같은 선택적 매개변수를 허용합니다.