Несколько задач на разработку MQL4

MQL4 指标 脚本

工作已完成

执行时间1 一天
员工反馈
Спасибо за работу. ТЗ понятно.
客户反馈
Очень качественно было выполнено задание! Моментальный отзыв на комментарии и было выполнено за несколько часов! Спасибо за работу! Если появятся новые задачи, то только к Vladon'у!

指定

Коллеги, добрый день!

Есть несколько задач:
1) Есть  индикатор showBid (скачал здесь), но он не обновляется по тику, только по событию CHARTEVENT_CHART_CHANGE. 
Нужно доделать, чтобы обновлялся по тику. Использовать как советник - не вариант, так как работает другой.

2) Вывести текущее время с секундами как объект в правый верхний угол графика (примерно такого же размера, как и showBid). Синхронизировать с локальным временем. 

3) Торгую бинарными опционами у брокера GrandCapital. Когда открываю позицию в поле комментария ордера выводится дата и время его экспирации, а также доходность опциона (например: в открытом ордере - "E 11.19 10:30:23 50%", в истории - "E 11.19 10:30:23 50%[2]" ).
а) Написать функцию, которая будет вытаскивать из комментария доходность и дату-время экспирации (для использования в советнике в дальнейшем)

Я пробовал писать так:

//функция получения доходности опциона из ордера numorder - выбираю ордер по тикету

<sourcecode>  

int getOptionProfit(int numorder)
{
   int result=0;
   string comment="";
   int len=0;
   bool res=OrderSelect(numorder,SELECT_BY_TICKET);
   if (res)
   {
      comment=OrderComment();
      len=StringLen(comment);
      if (len==20) result=StringToInteger(StringSubstr(comment,StringLen(comment)-3,2)); //для открытого рыночного ордера
      if (len==23) result=StringToInteger(StringSubstr(comment,StringLen(comment)-6,2)); //для закрытого ордера
   }
   Alert(result);
   return(result);
}

</sourcecode>


Функция должна исполняться, когда получен тикет (открыт ордер) нового открытого ордера. Может ордер просто не успевает открыться, а функция уже исполнилась? 
Эта функция возращает 0 в советнике, но если ее тестировать в процедуре OnInit, то она возвращает верное значение. Не могу понять почему так происходит.
 
//функция получения даты и времени экспирации опциона из ордера numorder - здесь попробовал выбрать открытый ордер по позиции, но ошибка осталась

<sourcecode> 

datetime getOptionExpiration(string instr)
{
   datetime ordertimestr=0;
   string str="";
   for (int j=0;j<OrdersTotal();j++)
   {
      bool res=OrderSelect(j,SELECT_BY_POS,MODE_TRADES);
      if ((res)&&(OrderSymbol()==instr))
      {
         string str1=StringFormat("%s",TimeToString(TimeCurrent(),TIME_DATE));
         string year1=StringSubstr(str1,0,4); //вытаскиваем год
         str=OrderComment(); 
         string month1=StringSubstr(str,2,2); //вытаскиваем месяц
         string day1=StringSubstr(str,5,2); //вытаскиваем день
         string time1=StringSubstr(str,8,8); //вытаскиваем время
         ordertimestr=StringToTime(year1+"."+month1+"."+day1+" "+time1); //дата и время экспирации открытой позиции (число)
      }
   }  
   return(ordertimestr);        
}

</sourcecode>
Проблема та же, что и с предыдущим. Но возвращаемое значение этой функции я хочу в дальнейшем использовать для "отлова" момента экспирации опциона и записи действий в лог. Сейчас видимо она тоже криво работает, использую пока Sleep на срок жизни опциона. 
Если есть вариант как более эффективно поймать момент экспирации - предлагайте. 

 б) когда открывается ордер и в комментарии появляется дата и время экспирации нужно к часам в п. 2 "пристегнуть" таймер с обратным отсчетом времени до момента экспирации (в формате секунды/минуты:секунды/часы:минуты:секунды - на выбор пользователя). Обязательно использование с выбранным ордером (по тикету)


Жду предложений.
 
 
 

附加的文件:

MQ5
showbid.mq5
3.3 Kb

反馈

1
开发者 1
等级
(23)
项目
90
24%
仲裁
12
33% / 67%
逾期
35
39%
空闲
2
开发者 2
等级
(3)
项目
4
25%
仲裁
0
逾期
0
空闲
3
开发者 3
等级
(74)
项目
93
53%
仲裁
3
33% / 0%
逾期
3
3%
空闲
相似订单
Есть советник, нужно только поменять название,описание, сделать привязку к счету, чтобы была защита,чтобы мы могли клиенту давать советник, и была привязка к 1-3 счетам только. Если возможно , сделать привязку к времени, чтобы была привязка лицензии еще на время, например на месяц, 2-3
1. Понимание экспоненциальной и линейной функций: - Экспоненциальная функция имеет вид: y = a * b^x, где a - начальное значение, b - основание экспоненты. - Линейная функция имеет вид: y = mx + b, где m - коэффициент наклона, b - свободный член. 2. Определение целевых значений: - Необходимо определить, к каким значениям на линейном графике должны соответствовать точки на экспоненциальном графике. 3. Решение
Нужен скрипт или советник. В программе заложены будут как сигналы так и данные индикаторов. В этом скрипте/советнике или возможно программе, будут различные индикаторы такие как Стохастик, RSI,RVI, MACD, Momentum, MFI, OBV, A/D, а также несколько Muving, BollingerB, ParabolicSAR, Semafor, также учитываться точки Pivot, линии тренда и уровни поддержки/сопротивления. Необходимо чтобы вышеуказанные индикаторы давали
требуется организовать копирование сигналов с телеграмм канала в платформу Metatrader4 бюджет обсуждаем до 100$ - в закрытый телеграмм канал поступает информация с сигналами #EURUSD BUY TP нужно чтобы в мт4 автоматически открылась сделка с данными параметрами

项目信息

预算
20 - 40 USD
开发人员
18 - 36 USD
截止日期
 2  10 天