Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 913

 
Mikhail Rudyk:

Здраствуйте

подскажите пожалуйста как можна правильно заменить выражение

trend[i] = (i<Bars-1) ? (price>amax[i+1]) ? 1 : (price<amin[i+1]) ? -1 : trend[i+1] : 0;

операторами (if и else)

спасибо

Вроде так

// trend[i] = (i<Bars-1) ? ( (price>amax[i+1]) ? 1 : (price<amin[i+1]) ? -1 : trend[i+1] ) : 0;
if(i<Bars-1) {
 if(price>amax[i+1]) 
  trend[i] = 1;
  else {
  if(price<amin[i+1])
   trend[i] = -1;
  else
   trend[i] = price<amin[i+1];
  }
} else {
  trend[i] = 0;
}
 
Mikhail Rudyk:

Здраствуйте

подскажите пожалуйста как можна правильно заменить выражение

trend[i] = (i<Bars-1) ? (price>amax[i+1]) ? 1 : (price<amin[i+1]) ? -1 : trend[i+1] : 0;

операторами (if и else)

спасибо

Никак. Потому, что это выражение написано с ошибкой.

Как читается оператор ?:

присвоить переменной при выполненном условии значение1 иначе значение2

Составной оператор выглядит так:

int x;
x = a == 3 ? 1 : a == 2 ? 7 : 9;
int x;
if(a == 3)
 x = 1;
else if(a == 2)
 x = 7;
else 
 x = 9;

При a==3 присвоить переменной х значение 1 иначе при а == 2 присвоить переменной х значение 7 во всех иных случаях присвоить переменной х значение 9;

 

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

Ищу эксперта с открытым кодом, или класс, или фрагмент кода с понятным алгоритмом.

Цель - виртуально имитировать работу счета на реальных котировках. То есть советник или индикатор установленный на реальном счете принимает в себя реальные котировки и симулирует внутри себя торговлю.

Результаты такой торговли выводятся любым доступным способом для дальнейшего анализа. 

Буду крайне благодарен за любые ссылки или идеи по этой или около-этой теме

 
Sergey Voytsekhovsky:

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

Ищу эксперта с открытым кодом, или класс, или фрагмент кода с понятным алгоритмом.

Цель - виртуально имитировать работу счета на реальных котировках. То есть советник или индикатор установленный на реальном счете принимает в себя реальные котировки и симулирует внутри себя торговлю.

Результаты такой торговли выводятся любым доступным способом для дальнейшего анализа. 

Буду крайне благодарен за любые ссылки или идеи по этой или около-этой теме

А Вам для какого рынка?

 
Vladimir Karputov:

Можно на базе OnChartEvent и идентификатора события CHARTEVENT_CHART_CHANGE - любое изменение графика. Можно в таймере проверять (например раз в секунду).

Вот набросал пример на базе OnChartEvent и идентификатора события CHARTEVENT_CHART_CHANGE:

Забавно, если зажать курсор на ценовой шкале и двигать мышь вверх, то будут дергаться цифры, т.е. как бы происходит на мгновение изменение размера области экрана, но потом оно обратно стабилизируется.

Можно ли как то делать авторасширение экрана до заданного числа пунктов?
 

делаю советник с iAO и iAC...

логика простая совпадения по цвету!!! обе зеленые, то BUY, обе красные SELL
но что то не работает!!! много касяков, зеленая-красная!!! посматрите плз...

if(CopyBuffer(handle_AO_0, 0, 0, 200, AO_0) <= 0)
   return;     

if(CopyBuffer(handle_AC_0, 0, 0, 200, AC_0) <= 0)
   return;

ArraySetAsSeries(AO_0, true);
ArraySetAsSeries(AC_0, true);

//--- (BUY) possibility
  if(AO_0[1] > AO_0[2] && AC_0[1] > AC_0[2])
        {
         if(m_trade.Buy(lot, _Symbol, m_symbol.Ask(), 0, 0, magic))
           {
            Print("BUY order opened : ",m_trade.ResultPrice());
           }
        }

  //--- (SELL) possibility
  if(AO_0[1] < AO_0[2] && AC_0[1] < AC_0[2])
        {
         if(m_trade.Sell(lot, _Symbol, m_symbol.Bid(), 0, 0, magic))
           {
            Print("SELL order opened : ",m_trade.ResultPrice());
           }
        }
 
ponochka:

делаю советник с iAO и iAC...

логика простая совпадения по цвету!!! обе зеленые, то BUY, обе красные SELL
но что то не работает!!! много касяков, зеленая-красная!!! посматрите плз...

1. В MQL5 в принципе нет понятия индикатор "зеленый, "красный".

2. Укажите тип счёта: неттинг или хедж

3. Дайте полный код. Укажите символ и таймфрейм. Укажите временной интервал.

4. Покажите сделки и график со сделками.

 

Доброе день, форумчане!!

Снова обращаюсь за помощью!

Вопрос такой, я задаю внешним параметром переменную

input ENUM_TIMEFRAMES per_candle=PERIOD_D1;                          //период расчета худших и лучших результатов

Далее в коде мне необходимо чтобы после первого трейда который произошел во время 

first_buy

прошло времени не менее чем задано в параметре per_candle.

Таким образом не выходит

if (TimeCurrent()>first_buy+per_candle)

Почему-то при периоде в день first_buy+per_candle, здесь прибавляется только 4 часа

Трейд был в 00:00.

Прошу помочь, кто знает, что я делаю не верно.

 
ISL:

Доброе день, форумчане!!

Снова обращаюсь за помощью!

Вопрос такой, я задаю внешним параметром переменную

Далее в коде мне необходимо чтобы после первого трейда который произошел во время 

прошло времени не менее чем задано в параметре per_candle.

Таким образом не выходит

Почему-то при периоде в день first_buy+per_candle, здесь прибавляется только 4 часа

Трейд был в 00:00.

Прошу помочь, кто знает, что я делаю не верно.

Это раз (скрипт в прицепе)

PERIOD_CURRENT 1
PERIOD_M2 2
PERIOD_M3 3
PERIOD_M4 4
PERIOD_M5 5
PERIOD_M6 6
PERIOD_M10 10
PERIOD_M12 12
PERIOD_M15 15
PERIOD_M20 20
PERIOD_M30 30
PERIOD_H1 16385
PERIOD_H2 16386
PERIOD_H3 16387
PERIOD_H4 16388
PERIOD_H6 16390
PERIOD_H8 16392
PERIOD_H12 16396
PERIOD_D1 16408
PERIOD_W1 32769
PERIOD_MN1 49153

Это два: PeriodSeconds

Файлы:
 
Vladimir Karputov:

Это раз (скрипт в прицепе)

Это два: PeriodSeconds

Спасибо Вам огромное!!!

Причина обращения: