Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 308

 
MosheDayan:

Друзья, как правильно выйти из такой ситуации... Индикатор отрисовывает из CSV две горизонтальные линии(Красная - с начала дня до конца дня) Синяя - Луч идущий из прошлых дней, на разных ценовых уровнях. Но бывают дни когда у этих уровней одинаковые значения/цена. Как правильно выйти из ситуации, чтобы при совпадении линий Луч(Синий) отображался, а Красная линия была не видна на графике, но физически присутствовала...т.е. была прозрачной.

Сейчас - Draw_Level("Red", red, DRAW_NONE, STYLE_SOLID,0); перестает отрисовывать линию, но и Луч из-под нее не виден. Спасибо.

Обрати внимание на последовательность создания объектов. А что такое Draw_Level() Зачем упоминать пользовательскую функцию если с ней никто не знаком?

 
Artyom Trishkin:

Добрый день. А что именно вы сами пытались сделать? Я вижу лишь два приложенных кода. Если вам нужно чтобы кто-то всё сделал для вас, то для этого есть фриланс.

А если сами пытаетесь, то покажите что именно делаете, и где не понимаете.

Добрый день, Артем! Корректное замечание. Да, прилагаю вордовский файл с кодом. То, что добавил в свой код из заимствованного алгоритма, выделено красным. Сказать, где не понимаю, пока так уверенно не могу, так как не совсем представляю механизм работы кода. Но может у Вас получится направить советом в нужное русло. Буду благодарен.

 

Добрый день!
Я буду открывать ордер по символу отличающего от графика где прикреплен эксперт. Вопрос такой, надо предварительно проверять правильность Bid и как это сделать?

double Bid0= MarketInfo(OtherSymbol0,MODE_BID);
OrderSend(OtherSymbol0,OP_SELL,1,Bid0,3,stoploss,takeprofit,"My order",16384,0,clrGreen); 
 

Добрый день.

Друзья подскажите как можно в коде написать следующее время: 23:59 первой пятницы месяца после первой среды этого месяца? т.е. если начался месяц с четверга то нужно время 23:59 второй пятницы...

Спасибо.

 
MosheDayan:

Добрый день.

Друзья подскажите как можно в коде написать следующее время: 23:59 первой пятницы месяца после первой среды этого месяца? т.е. если начался месяц с четверга то нужно время 23:59 второй пятницы...

Спасибо.

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   int countWedn=0;
   int countFrid=0;
   if(TimeDayOfWeek(TimeCurrent())==5 && Hour()==23 && Minute()==59)
     {
      countWedn=0;
      countFrid=0;
      for(int i=0; i<=Day(); i++)
        {
         if(TimeMonth(iTime(Symbol(),PERIOD_D1,i))==TimeMonth(TimeCurrent()))
           {
            if(TimeDayOfWeek(iTime(Symbol(),PERIOD_D1,i))==3)countWedn++;
            if(TimeDayOfWeek(iTime(Symbol(),PERIOD_D1,i))==5)countFrid++;
           }
        }
     }
   if(countWedn==1 && countFrid==1)Print(" 23:59 первой пятницы месяца после первой среды этого месяца ");
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin:

Можно. И направление мысли верное. Покажите как пытались взять параметры?


Разобрался. Надо "пристегнуть" графический объект к соответствующему классу.

#include <ChartObjects\ChartObject.mqh>  

void OnStart()

  {

     CChartObject object;

     string objName     = "";

     double price       = 0;

     datetime dt;

     int NumTriangles   = ObjectsTotal(ChartID(),0,OBJ_TRIANGLE);

     

     for (int j=0;j<NumTriangles;j++){

         objName  = ObjectName(ChartID(),j);

         object.Attach(ChartID(),objName,0,3);

         for (int i=0;i<object.NumPoints();i++){

            price = object.Price(i);

            dt    = object.Time(i);

            Print("Pivot dot - ",IntegerToString(i)," Time = ",TimeToString(dt)," Price = ",DoubleToStr(price,4));

         }

         object.Detach();    

     } 

 

Добрый день всем!

У меня такой вопросик, есть такой блок:

opf_all=0;
  for(int is=OrdersHistoryTotal(); is>=0; is--)
   {
    if(OrderSelect(is, SELECT_BY_POS, MODE_HISTORY) && OrderSymbol()==Symbol() && OrderMagicNumber()==MN)
     {
      opf_all=opf_all+OrderProfit()+OrderCommission()+OrderSwap();
     }
   }

В переменной opf_all  должен выводится общий профит за весь период. НО, когда в терминале в закладке история счёта выбираем параметр за текущий день, то этот модуль выдаёт результат

только за текущий день, а когда выбираем за весь период, то этот модуль показывает за весь период. Ведь так не должно быть. В независимости от выбора интервала в истории счёта

модуль должен всё равно показывать общий профит за весь период. Может я что-то не понимаю?

Эта проблема как-то решается?

 
Valerius:

Добрый день всем!

У меня такой вопросик, есть такой блок:

opf_all=0;
  for(int is=OrdersHistoryTotal(); is>=0; is--)
   {
    if(OrderSelect(is, SELECT_BY_POS, MODE_HISTORY) && OrderSymbol()==Symbol() && OrderMagicNumber()==MN)
     {
      opf_all=opf_all+OrderProfit()+OrderCommission()+OrderSwap();
     }
   }

В переменной opf_all  должен выводится общий профит за весь период. НО, когда в терминале в закладке история счёта выбираем параметр за текущий день, то этот модуль выдаёт результат

только за текущий день, а когда выбираем за весь период, то этот модуль показывает за весь период. Ведь так не должно быть. В независимости от выбора интервала в истории счёта

модуль должен всё равно показывать общий профит за весь период. Может я что-то не понимаю?

Эта проблема как-то решается?

Нет, не решается иначе, чем выбором размера просчитываемой истории во вкладке "История счёта"

И, пожалуйста, вставляйте код при помощи кнопочки SRC - она прямо над полем ввода текста в меню форматирования сообщения. Я вашу нечитаемую "портянку" вставил правильно.

 
Artyom Trishkin:

Нет, не решается иначе, чем выбором размера просчитываемой истории во вкладке "История счёта"

И, пожалуйста, вставляйте код при помощи кнопочки SRC - она прямо над полем ввода текста в меню форматирования сообщения. Я вашу нечитаемую "портянку" вставил правильно.

Спасибо и извиняюсь...

 

Здравствуйте.есть кнопка на графике     https://www.mql5.com/ru/code/19049   и она открывает сайт.а мне надо что бы через эту кнопку можно было включить скрипт.можно ли переделать ?спасибо.

Link
Link
  • голосов: 11
  • 2017.09.01
  • Iurii Tokman
  • www.mql5.com
Индикатор создает графическую кнопку, при нажатии на которую открывается окно браузера с сайтом, заданным в настройках индикатора.