이 함수는 시가에서 시장에 가장 가까운 포지션의 유형( 0 -Buy, 1 -Sell)을 반환하거나 -1 을 반환합니다. 포지션 "근접성" 기준은 포지션 개시 가격과 현재 시장 가격 사이의 최소 거리(포인트 단위)입니다. 고려할 위치 선택은 외부 매개변수에 의해 설정됩니다.
sy - 시장 상품의 이름. 이 매개변수를 설정하면 이 기능은 지정된 도구의 위치만 고려합니다. 기본값은 "" 는 모든 시장 상품을 의미합니다. NULL 값은 현재 기기를 의미합니다.
op - 거래 작업 , 위치 유형. 유효한 값: OP_BUY , OP_SELL 또는 -1 . 기본값 -1 은 임의의 위치를 의미합니다.
mn - 위치 ID, MagicNumber. 기본값 -1 은 모든 식별자를 의미합니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 07.06.2008 |//| Описание : Возвращает тип ближайшей к рынку позиции или -1. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+int TypeNearPos( string sy= "" , int op=- 1 , int mn=- 1 ) {
double mi, p;
int i, k= OrdersTotal (), pp= 0 , ty=- 1 ;
if (sy== "0" ) sy= Symbol ();
for (i= 0 ; i<k; i++) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
if ((OrderSymbol()==sy || sy== "" ) && (op< 0 || OrderType()==op)) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (mn< 0 || OrderMagicNumber()==mn) {
if (OrderType()==OP_BUY) mi=MarketInfo(OrderSymbol(), MODE_ASK);
if (OrderType()==OP_SELL) mi=MarketInfo(OrderSymbol(), MODE_BID);
p=MarketInfo(OrderSymbol(), MODE_POINT);
if (p== 0 ) if ( StringFind (sy, "JPY" )< 0 ) p= 0.0001 ; else p= 0.01 ;
if (pp== 0 || pp> MathAbs (OrderOpenPrice()-mi)/p) {
pp= MathAbs (OrderOpenPrice()-mi)/p;
ty=OrderType();
}
}
}
}
}
}
return (ty);
}
이 함수는 마지막 오픈 포지션의 오픈 시간을 반환합니다. 고려할 위치 선택은 외부 매개변수에 의해 설정됩니다.
sy - 시장 상품의 이름. 이 매개변수를 설정하면 이 기능은 지정된 도구의 위치만 고려합니다. 기본값은 "" 는 모든 시장 상품을 의미합니다. NULL 값은 현재 기기를 의미합니다.
op - 거래 작업 , 위치 유형. 유효한 값: OP_BUY , OP_SELL 또는 -1 . 기본값 -1 은 임의의 위치를 의미합니다.
mn - 위치 ID, MagicNumber. 기본값 -1 은 모든 식별자를 의미합니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает время открытия последней открытой позиций. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+datetime TimeOpenLastPos( string sy= "" , int op=- 1 , int mn=- 1 ) {
datetime t;
int i, k= OrdersTotal ();
if (sy== "0" ) sy= Symbol ();
for (i= 0 ; i<k; i++) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy== "" ) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op< 0 || OrderType()==op) {
if (mn< 0 || OrderMagicNumber()==mn) {
if (t<OrderOpenTime()) t=OrderOpenTime();
}
}
}
}
}
}
return (t);
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 10.06.2008 |//| Описание : Выполняет пузырьковую сортировку элементов массива. |//+----------------------------------------------------------------------------+//| Параметры: |//| a - массив элементов |//+----------------------------------------------------------------------------+void BubbleSort( double & a[]) {
double t;
int i, j, n= ArraySize (a);
for (i=n- 1 ; i> 0 ; i--) {
for (j= 0 ; j<i; j++) {
if (a[j]>a[j+ 1 ]) {
t=a[j];
a[j]=a[j+ 1 ];
a[j+ 1 ]=t;
}
}
}
}
이 함수는 마지막 두 프랙탈 또는 -1 사이의 막대 수를 반환합니다. 시장 도구와 프랙탈을 취해야 하는 기간은 다음 매개변수에 의해 설정됩니다.
sy - 시장 상품의 이름. 기본값은 "" 이거나 NULL 은 현재 시장 상품을 의미합니다.
tf - 타임프레임(바의 분 수). 기본값은 0 - 현재 시간 프레임을 의미합니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 10.06.2008 |//| Описание : Возвращает количество баров между двумя последними фракталами. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| tf - таймфрейм ( 0 - текущий ТФ) |//+----------------------------------------------------------------------------+int BarsBetweenLastFractals( string sy= "" , int tf= 0 ) {
double fu= 0 , fd= 0 ;
int i, nu= 0 , nd= 0 ;
if (sy== "" || sy== "0" ) sy= Symbol ();
for (i= 2 ; i< 100 ; i++) {
fu= iFractals (sy, tf, MODE_UPPER, i);
if (fu!= 0 ) {
if (nu== 0 ) nu=i;
}
fd= iFractals (sy, tf, MODE_LOWER, i);
if (fd!= 0 ) {
if (nd== 0 ) nd=i;
}
if (nu> 0 && nd> 0 ) return ( MathAbs (nu-nd));
}
Print ( "BarsBetweenLastFractals(): Фракталы не найдены" );
return (- 1 );
}
SecondsAfterCloseLastPos() 함수.
이 함수는 마지막 위치가 닫힌 이후의 시간(초)을 반환합니다. 고려할 위치 선택은 다음 매개변수에 의해 설정됩니다.
sy - 시장 상품의 이름. 이 매개변수를 설정하면 이 기능은 지정된 도구의 위치만 고려합니다. 기본값은 "" 는 모든 시장 상품을 의미합니다. NULL 값은 현재 기기를 의미합니다.
op - 거래 작업 , 위치 유형. 유효한 값: OP_BUY , OP_SELL 또는 -1 . 기본값 -1 은 임의의 위치를 의미합니다.
mn - 위치 ID, MagicNumber. 기본값 -1 은 모든 식별자를 의미합니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает количество секунд после закрытия последней позиций. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+datetime SecondsAfterCloseLastPos( string sy= "" , int op=- 1 , int mn=- 1 ) {
datetime t;
int i, k=OrdersHistoryTotal();
if (sy== "0" ) sy= Symbol ();
for (i= 0 ; i<k; i++) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy== "" ) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op< 0 || OrderType()==op) {
if (mn< 0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) t=OrderCloseTime();
}
}
}
}
}
}
return ( TimeCurrent ()-t);
}
이 함수는 마지막 위치가 열린 이후의 시간(초)을 반환합니다. 고려할 위치 선택은 외부 매개변수에 의해 설정됩니다.
sy - 시장 상품의 이름. 이 매개변수를 설정하면 이 기능은 지정된 도구의 위치만 고려합니다. 기본값은 "" 는 모든 시장 상품을 의미합니다. NULL 값은 현재 기기를 의미합니다.
op - 거래 작업 , 위치 유형. 유효한 값: OP_BUY , OP_SELL 또는 -1 . 기본값 -1 은 임의의 위치를 의미합니다.
mn - 위치 ID, MagicNumber. 기본값 -1 은 모든 식별자를 의미합니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает количество секунд после открытия последней позиций. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+datetime SecondsAfterOpenLastPos( string sy= "" , int op=- 1 , int mn=- 1 ) {
datetime t;
int i, k= OrdersTotal ();
if (sy== "0" ) sy= Symbol ();
for (i= 0 ; i<k; i++) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy== "" ) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op< 0 || OrderType()==op) {
if (mn< 0 || OrderMagicNumber()==mn) {
if (t<OrderOpenTime()) t=OrderOpenTime();
}
}
}
}
}
}
return ( TimeCurrent ()-t);
}
DeleteOppositeOrders() 함수.
이 함수는 op 매개변수에 지정된 위치와 반대되는 하나 이상의 주문을 제거합니다. 예를 들어, 매수 포지션은 SellLimit 및 SellStop 주문 과 반대입니다. 예를 들어 두 개의 반대 주문이 배치되고 그 중 하나가 트리거되는 경우 반대 주문을 제거해야 합니다.
sy - 시장 상품의 이름. 이 매개변수를 설정하면 이 기능은 지정된 도구의 위치만 고려합니다. 기본값은 "" 는 모든 시장 상품을 의미합니다. NULL 값은 현재 기기를 의미합니다.
op - 거래 작업, 위치 유형. 유효한 값: OP_BUY , OP_SELL 또는 -1 . 기본값 -1 은 임의의 위치를 의미합니다.
mn - 위치 ID, MagicNumber. 기본값 -1 은 모든 식별자를 의미합니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 16.06.2008 |//| Описание : Удаление ордеров, противоположных позиции |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+void DeleteOppositeOrders( string sy= "" , int op=- 1 , int mn=- 1 ) {
bool eb, es;
switch (op) {
case OP_BUY : eb=ExistPositions(sy, OP_BUY , mn); break ;
case OP_SELL: es=ExistPositions(sy, OP_SELL, mn); break ;
default : eb=ExistPositions(sy, OP_BUY , mn);
es=ExistPositions(sy, OP_SELL, mn); break ;
}
if (eb) {
DeleteOrders(sy, OP_SELLLIMIT, mn);
DeleteOrders(sy, OP_SELLSTOP , mn);
}
if (es) {
DeleteOrders(sy, OP_BUYLIMIT, mn);
DeleteOrders(sy, OP_BUYSTOP , mn);
}
}
이 함수 는 배열의 요소를 double 값으로 검색하고 발견된 요소의 인덱스 또는 -1 을 반환합니다. 이 함수는 하나의 요소만 찾고 결과가 양수이면 검색을 종료합니다.
m - 요소를 검색할 배열입니다.
e - 배열 m 에서 찾을 double 값입니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 01.09.2005 |//| Описание : Выполняет поиск элемента массива по значению |//| и возвращает индекс найденного элемента или -1. |//+----------------------------------------------------------------------------+//| Параметры: |//| m - массив элементов |//| e - значение элемента |//+----------------------------------------------------------------------------+int ArraySearchDouble( double & m[], double e) {
for ( int i= 0 ; i< ArraySize (m); i++) {
if (m[i]==e) return (i);
}
return (- 1 );
}
ArraySearchInt() 함수.
이 함수는 int 값으로 배열 요소를 검색하고 발견된 요소의 인덱스 또는 -1 을 반환합니다. 이 함수는 하나의 요소만 찾고 결과가 양수이면 검색을 종료합니다.
m - 검색할 int 요소의 배열입니다.
e - 배열 m 에서 찾을 int 값입니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 01.09.2005 |//| Описание : Выполняет поиск элемента массива по значению |//| и возвращает индекс найденного элемента или -1. |//+----------------------------------------------------------------------------+//| Параметры: |//| m - массив элементов |//| e - значение элемента |//+----------------------------------------------------------------------------+int ArraySearchInt( int & m[], int e) {
for ( int i= 0 ; i< ArraySize (m); i++) {
if (m[i]==e) return (i);
}
return (- 1 );
}
ArraySearchString() 함수.
이 함수는 string 유형의 값으로 배열의 요소를 검색하고 발견된 요소의 인덱스 또는 -1 을 반환합니다. 이 함수는 하나의 요소만 찾고 결과가 양수이면 검색을 종료합니다.
m - 검색할 문자열 유형의 요소 배열입니다.
e - 배열 m 에서 찾을 문자열 값입니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 04.03.2008 |//| Описание : Выполняет поиск элемента массива по значению |//| и возвращает индекс найденного элемента или -1. |//+----------------------------------------------------------------------------+//| Параметры: |//| m - массив элементов |//| e - значение элемента |//+----------------------------------------------------------------------------+int ArraySearchString( string & m[], string e) {
for ( int i= 0 ; i< ArraySize (m); i++) {
if (m[i]==e) return (i);
}
return (- 1 );
}
이 함수는 마지막 마감 위치의 로트 크기 또는 -1 을 반환합니다. 고려할 위치 선택은 외부 매개변수에 의해 설정됩니다.
sy - 시장 상품의 이름. 이 매개변수를 설정하면 이 기능은 지정된 도구의 위치만 고려합니다. 기본값은 "" 는 모든 시장 상품을 의미합니다. NULL 값은 현재 기기를 의미합니다.
op - 거래 작업, 위치 유형. 유효한 값: OP_BUY , OP_SELL 또는 -1 . 기본값 -1 은 임의의 위치를 의미합니다.
mn - 위치 ID, MagicNumber. 기본값 -1 은 모든 식별자를 의미합니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 16.06.2008 |//| Описание : Возвращает размер лота последней закрытой позиции или -1 |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+double GetLotLastClosePos( string sy= "" , int op=- 1 , int mn=- 1 ) {
datetime o;
double l=- 1 ;
int i, k=OrdersHistoryTotal();
if (sy== "0" ) sy= Symbol ();
for (i= 0 ; i<k; i++) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy== "" ) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op< 0 || OrderType()==op) {
if (mn< 0 || OrderMagicNumber()==mn) {
if (o<OrderCloseTime()) {
o=OrderCloseTime();
l=OrderLots();
}
}
}
}
}
}
}
return (l);
}
PriceOpenLastPos() 함수.
이 함수는 마지막 오픈 포지션의 시가를 반환합니다. 고려할 위치 선택은 외부 매개변수에 의해 설정됩니다.
PriceOpenLastClosePos() 함수.
이 함수는 마지막으로 마감된 포지션의 시가를 반환합니다. 고려할 위치 선택은 외부 매개변수에 의해 설정됩니다.
PriceOpenNearPos() 함수.
이 함수는 가장 가까운 위치의 시가를 반환합니다. 포지션 "근접성" 기준은 포지션 개시 가격과 현재 시장 가격 사이의 최소 거리(포인트 단위)입니다. 고려할 위치 선택은 외부 매개변수에 의해 설정됩니다.
TicketNearPos() 함수.
이 함수는 시장에서 가장 가까운 포지션의 티켓을 반환합니다. 포지션 "근접성" 기준은 포지션 개시 가격과 현재 시장 가격 사이의 최소 거리(포인트 단위)입니다. 고려할 위치 선택은 외부 매개변수에 의해 설정됩니다.
TypeNearPos() 함수.
이 함수는 시가에서 시장에 가장 가까운 포지션의 유형( 0 -Buy, 1 -Sell)을 반환하거나 -1 을 반환합니다. 포지션 "근접성" 기준은 포지션 개시 가격과 현재 시장 가격 사이의 최소 거리(포인트 단위)입니다. 고려할 위치 선택은 외부 매개변수에 의해 설정됩니다.
TimeOpenLastPos() 함수.
이 함수는 마지막 오픈 포지션의 오픈 시간을 반환합니다. 고려할 위치 선택은 외부 매개변수에 의해 설정됩니다.
BarsBetweenLastFractals() 함수.
이 함수는 마지막 두 프랙탈 또는 -1 사이의 막대 수를 반환합니다. 시장 도구와 프랙탈을 취해야 하는 기간은 다음 매개변수에 의해 설정됩니다.
SecondsAfterCloseLastPos() 함수.
이 함수는 마지막 위치가 닫힌 이후의 시간(초)을 반환합니다. 고려할 위치 선택은 다음 매개변수에 의해 설정됩니다.
SecondsAfterOpenLastPos() 함수.
이 함수는 마지막 위치가 열린 이후의 시간(초)을 반환합니다. 고려할 위치 선택은 외부 매개변수에 의해 설정됩니다.
DeleteOppositeOrders() 함수.
이 함수는 op 매개변수에 지정된 위치와 반대되는 하나 이상의 주문을 제거합니다. 예를 들어, 매수 포지션은 SellLimit 및 SellStop 주문 과 반대입니다. 예를 들어 두 개의 반대 주문이 배치되고 그 중 하나가 트리거되는 경우 반대 주문을 제거해야 합니다.
ArraySearchDouble() 함수.
이 함수 는 배열의 요소를 double 값으로 검색하고 발견된 요소의 인덱스 또는 -1 을 반환합니다. 이 함수는 하나의 요소만 찾고 결과가 양수이면 검색을 종료합니다.
ArraySearchInt() 함수.
이 함수는 int 값으로 배열 요소를 검색하고 발견된 요소의 인덱스 또는 -1 을 반환합니다. 이 함수는 하나의 요소만 찾고 결과가 양수이면 검색을 종료합니다.
ArraySearchString() 함수.
이 함수는 string 유형의 값으로 배열의 요소를 검색하고 발견된 요소의 인덱스 또는 -1 을 반환합니다. 이 함수는 하나의 요소만 찾고 결과가 양수이면 검색을 종료합니다.
GetLotLastClosePos() 함수.
이 함수는 마지막 마감 위치의 로트 크기 또는 -1 을 반환합니다. 고려할 위치 선택은 외부 매개변수에 의해 설정됩니다.
ArrayMax() 함수.
이 함수는 배열의 최대 요소 값을 반환합니다.