Данная функция возвращает флаг разрешения торговли по времени. Возвращаемое значение - истина или ложь. Функция isTradeTimeInt() по принципу распознавания временного интервала аналогична функции isTradeTimeString(), то есть время начала торговли может быть как больше (временной отрезок внутри суток) времени окончания, так и меньше (временной отрезок в разных сутках). Функция isTradeTimeInt() принимает следующие необязательные параметры:
hb - Число, задаёт часы времени начала торговли. Значение по умолчанию - 0.
mb - Число, задаёт минуты времени начала торговли. Значение по умолчанию - 0.
he - Число, задаёт часы времени окончания торговли. Значение по умолчанию - 0.
me - Число, задаёт минуты времени окончания торговли. Значение по умолчанию - 0.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 30.04.2009 |//| Описание : Возвращает флаг разрешения торговли по времени. |//+----------------------------------------------------------------------------+//| Параметры: |//| hb - часы времени начала торговли |//| mb - минуты времени начала торговли |//| he - часы времени окончания торговли |//| me - минуты времени окончания торговли |//+----------------------------------------------------------------------------+bool isTradeTimeInt(int hb=0,int mb=0,int he=0,int me=0){datetime db, de;// Время начала и окончания работыint hc;// Часы текущего времени торгового сервера
db=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+hb+":"+mb);
de=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+he+":"+me);
hc=TimeHour(TimeCurrent());if(db>=de){if(hc>=he) de+=24*60*60;else db-=24*60*60;}if(TimeCurrent()>=db &&TimeCurrent()<=de)return(True);elsereturn(False);}
Эта функция возвращает флаг закрытия последней позиции по стопу. Флаг поднят - True - сработал StopLoss. Флаг опущен - False - позиция была закрыта по другой причине. Более точный отбор учитываемых позиций задаётся внешними параметрами:
Здравствуйте
Пытаюсь использовать Вашу функцию в своих целях. Маленький рабочий эксперт. Только продает и закрывает, одна позиция. Иногда ловит несколько стоплоссов подряд. Хочу чтобы после первого стопа менялись условия продажи, Эксперт открывает позиции, но не закрывает. Подскажите, что я делаю не так ?
Здравствуйте, не могли бы Вы помочь переделать данный кластерный индикатор в функцию с такой же прорисовкой и + возвратом значений скорости изменения ПАРЫ (верхний правый угол) по входному параметру - названию пары. Заранее благодарю.
А как выразить в коде, что в начале любого часа на первой секунде открываем две разнонаправленные позиции, а на последней секунде часа закрываем несработавший ордер?
VAM_ писал(а)>> А как выразить в коде, что в начале любого часа на первой секунде открываем две разнонаправленные позиции, а на последней секунде часа закрываем несработавший ордер?
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
На 76 странице...
спасибо
Функция isTradeTimeInt().
Данная функция возвращает флаг разрешения торговли по времени. Возвращаемое значение - истина или ложь. Функция isTradeTimeInt() по принципу распознавания временного интервала аналогична функции isTradeTimeString(), то есть время начала торговли может быть как больше (временной отрезок внутри суток) времени окончания, так и меньше (временной отрезок в разных сутках). Функция isTradeTimeInt() принимает следующие необязательные параметры:
Примеры использования функции isTradeTimeInt().
if (isTradeTimeInt(6, 0, 9, 30)) Message("Торгуем..."); else Message("Отдыхаем...");if (isTradeTimeInt(12, 0, 16, 30)) Message("Торгуем..."); else Message("Отдыхаем...");if (isTradeTimeInt(21, 15, 9, 30)) Message("Торгуем..."); else Message("Отдыхаем...");if (isTradeTimeInt(22, 0, 5, 30)) Message("Торгуем..."); else Message("Отдыхаем...");ЗЫ. Во вложении скрипт для тестирования функции isTradeTimeInt().
Обновлённый список функций с краткими описаниями и ссылками...
Функция isCloseLastPosByStop().
Эта функция возвращает флаг закрытия последней позиции по стопу. Флаг поднят - True - сработал StopLoss. Флаг опущен - False - позиция была закрыта по другой причине. Более точный отбор учитываемых позиций задаётся внешними параметрами:
Здравствуйте
Пытаюсь использовать Вашу функцию в своих целях. Маленький рабочий эксперт. Только продает и закрывает, одна позиция. Иногда ловит несколько стоплоссов подряд. Хочу чтобы после первого стопа менялись условия продажи, Эксперт открывает позиции, но не закрывает. Подскажите, что я делаю не так ?
..........................................................
if ( isCloseLastPosByStop(NULL,OP_SELL, MagicNamber) == 0){
if ( (StochK_0<StochD_1) && (StochD_1 > 80) ) // 1ые усл продажи
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green); // продаем
OrderSelect(0, SELECT_BY_POS);
if (OrderSelect(0, SELECT_BY_POS)==true )
Print("выбрал");
else
Print("не выбрал ошибка : ",GetLastError());
RefreshRates();
if((StochK_0<30)&& (StochD_1 < 30))
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);
}
else
if ( isCloseLastPosByStop(NULL,OP_SELL, MagicNamber) == 1)
{
if ((StochK_0<StochD_1) && (StochK_0 < 60) && (StochD_1 < 60) ) //2ые усл продажи
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0, "My EXP", MagicNamber,0,Green); //
...........................
Эксперт открывает позиции, но не закрывает.
Сделайте принты переменных StochK_0 и StochD_1. Может быть они принимают такие значения, которые не попадают под Ваши условия закрытия позиции.
to KimIV
Здравствуйте, не могли бы Вы помочь переделать данный кластерный индикатор в функцию с такой же прорисовкой и + возвратом значений скорости изменения ПАРЫ (верхний правый угол) по входному параметру - названию пары. Заранее благодарю.
Р.S..... мучаюсь уже неделю
А как выразить в коде, что в начале любого часа на первой секунде открываем две разнонаправленные позиции, а на последней секунде часа закрываем несработавший ордер?
А если их нету, первой и последней секунды?