По поводу стоплоссов и тейкпрофитов: Нужно два массива для хранения ордеров на текущем и предыдущем тике. При появлении тика заполняется массив текущих ордеров. Затем сравнивается с массивом ордеров с предыдущего тика. Если какой-то ордер есть в предыдущих, но его нет в текущем, значит он был закрыт или удален. Делаем OrderSelect по тикету этого ордера и проверяем, как он был закрыт.
затем копируем текущий массив в массив предыдущих ордеров.
как-то так....
Пока нет объявлений.
115 результатов за 0.0522 секунд.
Ключевые слова
Участники
Метки
-
Цикл никогда и не будет исполнен, т.к. Начальное значение i == 0, а это МЕНЬШЕ чем 49.
Вывод: нужно изменить знак с БОЛЬШЕ на МЕНЬШЕ...Прокомментировать:
-
Есть.
Библиотека WinUser32.mqh, которая идет в поставке с терминалом.
В этой библиотеке описаны процедуры и функции из User32.dll...Прокомментировать:
-
А я никого и не заставляю пользоваться моими функциями. Пишите свои функции, которыми пользоваться будет "реально". И с самым лучшим стилем наименования. Собирайте в инклюдник и выкладывайте в эту тему. А мы, с удовольствием будем пользоваться вашими наработками
А если по существу, то эти функции полезны в первую очередь мне.
PS Если есть вопросы непосредственно по самим функциям, задавайте. С удовольствием отвечу.Прокомментировать:
-
Parabolic SAR
Начало
iSARgetNearUp
Возвращает индекс ближайшего бара, для которого значение SAR больше High
int shift : индекс бара, с которого начинаем поиск.
MQL код:
int iSARgetNearUp(int shift){
/*
>Ver : 0.0.1
>Date : 2012.11.21
>Hist :
@0.0.1@2012.11.21@artamir []
>Author : Morochin <artamir> Artiom
>Desc : return shift of the nearest up sar
*/
int idxBar = -1;
int thisBar = shift;
int maxBars = Bars-shift-1;
int lim = shift+maxBars;
while (thisBar<=lim && !iSARisUp(thisBar)){
thisBar++;
}
if(thisBar < lim){
return(thisBar);
}else{
return(-1);
}
}
Прокомментировать:
-
Parabolic SAR
Начало
iSAR.isDw
Возвращает true если для заданного индекса бара значение SAR меньше Low бара
int shift : индекс проверяемого бара.
MQL код:
bool iSARisDw(int shift = 0){
/*
>Ver : 0.0.1
>Date : 2012.11.21
>Hist :
@0.0.1@2012.11.21@artamir []
>Author : Morochin <artamir> Artiom
>Desc : return true if sar is under low of the bar
*/
double l = iLow(NULL, 0, shift);
if(iSARgetPrice(shift) < l){
return(true);
}else{
return(false);
}
}
Прокомментировать:
-
Parabolic SAR
Начало
iSARisUp
Возвращает true если для заданного индекса бара SAR выше High
int shift : индекс бара, для которого определяется положение индикатора относительно цены High.
MQL код:
bool iSARisUp(int shift = 0){
/*
>Ver : 0.0.1
>Date : 2012.11.21
>Hist :
@0.0.1@2012.11.21@artamir []
>Author : Morochin <artamir> Artiom
>Desc : return true if sar is above high of the bar
*/
double h = iHigh(NULL, 0, shift);
if(iSARgetPrice(shift) > h){
return(true);
}else{
return(false);
}
}
Прокомментировать:
-
Смысл в удобстве чтения программного кода.
Особенно через полгодика-годик
Это часть функций заголовочного файла, который я использую в совах.
И передавать настройки параболика мне удобнее одной строкой....Последний раз редактировалось Gold; 27.11.2015, 20:24.Прокомментировать:
-
Parabolic SAR
Функции для работы с индикатором Parabolic SAR.
MQL код:
iSAR_Set()
Устанавливает глобальные настройки параболика
MQL код:
iSAR_getPrice(int shift = 0)
Возвращает цену индикатора на текущем инструменте и текущем таймфрейме на баре с индексом shift
MQL код:
double iSAR_Step = 0.02; // GLOBAL
double iSAR_Maximum = 0.2; //GLOBAL
void iSAR_Set(double step=0.02, double max=0.2){
/*
>Ver : 0.0.1
>Date : 2012.11.21
>Hist :
@0.0.1@2012.11.21@artamir []
>Author : Morochin <artamir> Artiom
>Desc :
*/
iSAR_Step = step;
iSAR_Maximum = max;
}
double iSAR.getPrice(int shift = 0){
/*
>Ver : 0.0.1
>Date : 2012.11.21
>Hist :
@0.0.1@2012.11.21@artamir []
>Author : Morochin <artamir> Artiom
>DescПрокомментировать:
-
Настраиваемые фракталы
Пример использования:
Индикатор на основе настраиваемых фракталов.
MQL код:
//+------------------------------------------------------------------+
//| iFR.mq4 |
//| Copyright 2012, artamir |
//| forexmd.ucoz.org |
//| elt.ucoz.org |
//| eltth.ucoz.org |
//| [email]artamir@yandex.ru[/email] |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, artamir"
#property link "forexmd.ucoz.org"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 LightGreen
#propertyПрокомментировать:
-
Настраиваемые фракталы
iFR.getNearestDwPrice
Возвращает цену ближайшего нижнего фрактала
Поиск фрактала начинается сMQL код:startBar
MQL код:
double iFR.getNearestDwPrice(int startBar){
/*
>Ver : 0.0.2
>Date : 2012.11.13
>Hist :
@0.0.2@2012.11.13@artamir []
@0.0.1@2012.11.13@artamir []
>Author : Morochin <artamir> Artiom
>Desc : return price by nearest up fractal
*/
int fb = iFR.getNearstDw(startBar);
return(iLow(NULL, 0, fb));
}
Прокомментировать:
-
Настраиваемые фракталы
iFR.getNearestUpPrice
Возвращает цену ближайшего верхнего фрактала.
Поиск ближайшего верхнего фрактала начинается соMQL код:startBar
MQL код:
double iFR.getNearestUpPrice(int startBar){
/*
>Ver : 0.0.1
>Date : 2012.11.13
>Hist :
@0.0.1@2012.11.13@artamir []
>Author : Morochin <artamir> Artiom
>Desc : return price by nearest up fractal
*/
int fb = iFR.getNearstUp(startBar);
return(iHigh(NULL, 0, fb));
}
Прокомментировать:
-
Настраиваемые фракталы
iFR.getNearstDw
int startBar : индекс бара, начиная с которого будет производиться поиск ближайшего нижнего фрактала.
MQL код:
int iFR.getNearstDw(int startBar = 1){
/*
>Ver : 0.0.1
>Date : 2012.11.13
>Hist :
@0.0.1@2012.11.13@artamir []
>Author : Morochin <artamir> Artiom
>Desc : return index of bar of nearst down fractal
*/
bool f = false;
int i = startBar-1;
while(!f && i < Bars){
i++;
if(iFR.IsDw(i)){
f = true;
}
}
return(i);
}
Возвращает индекс бара ближайшего фрактала.Прокомментировать:
-
Настраиваемые фракталы
Начало
iFR.getNearstUp
int startBar : индекс бара, начиная с которого будет производиться поиск ближайшего верхнего фрактала.
MQL код:
int iFR.getNearstUp(int startBar = 1){
/*
>Ver : 0.0.1
>Date : 2012.11.13
>Hist :
@0.0.1@2012.11.13@artamir []
>Author : Morochin <artamir> Artiom
>Desc : return index of bar of nearst up fractal
*/
bool f = false;
int i = startBar-1;
while(!f && i < Bars){
i++;
if(iFR.IsUp(i)){
f = true;
}
}
return(i);
}
Прокомментировать:
-
А можешь хотя бы кратко описать в каком файле, что находится?
СпасибоПрокомментировать:
Прокомментировать: