Несколько задач на разработку 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 日