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

 
Artyom Trishkin #:

10027

TRADE_RETCODE_CLIENT_DISABLES_AT

Автотрейдинг запрещен клиентским терминалом


ERR_TRADE_DISABLED

4752

Торговля для эксперта запрещена


https://www.mql5.com/ru/docs/constants/errorswarnings

спасибо

 
Alexey Viktorov #:

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

А если так?

string position_symbol  = PositionGetString(POSITION_SYMBOL);
if(!PositionSelect(Symbol()) || position_symbol==Symbol() && magic != Magic_m)
Понял. Все равно в цикл.
input ulong Magic_m          = 22222;
ulong       magic            = PositionGetInteger(POSITION_MAGIC);
int         total            = PositionsTotal();
for(int i=total-1; i>=0; i--)
{
string position_symbol       = PositionGetString(POSITION_SYMBOL);
if(!PositionSelect(Symbol()) || (position_symbol==Symbol() && magic != Magic_m))
Спасибо. Верно я написал?
 
maxvoronin74 #:

А если так?

Понял. Все равно в цикл. Спасибо. Верно я написал?

Нет.

Выбирать позицию надо не по символу, а по тикету функцией PositionGetTicket(i) и потом проверять магик и символ.

 

Товарищи подскажите, прибыль в тестере стратегий во вкладке оптимизация написанно в долларах?

и результат еще что значит красный и темно зеленый?

просадка я так понимаю в процентах от общего депозита да?

 
AkaEdie #:

Товарищи подскажите, прибыль в тестере стратегий во вкладке оптимизация написанно в долларах?

и результат еще что значит красный и темно зеленый?

просадка я так понимаю в процентах от общего депозита да?

Прибыль\убыток ВСЕГДА в валюте депозита… 

Красный—зелёный не для меня.

 
AkaEdie #:

... и результат еще что значит красный и темно зеленый?

Скорее всего, это просто цветовая шкала для наборов параметров по принципу хороший - плохой результат. Чем зеленее и темнее - тем лучше.

 

Сижу более часа и не могу решить ребус

Сломали терминал, или у меня проблема?


Не получает данные с любого другого таймфрема, только с указанного при создании МА

int OnInit()
{
  hMA1=iMA(Symbol(), PERIOD_H1, 5, 0, MODE_EMA, PRICE_CLOSE);
  if(hMA1<0) {
    Alert("ERROR handle MA");
    return(INIT_FAILED);
  }
  return(INIT_SUCCEEDED);
}
int hMA1=-1;
double buf[1];
--
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])

{
  Print(  CopyBuffer(hMA1,0,10,1,buf),"=", buf[0]  );
 ...

--

Печать на любом другой таймфрейме

--

Печать на тайме Н1, проблем никаких


 

Что помогает получить данные от МА

Тиков нет - выходные, поэтому только так

--

А теперь возникает вопрос?

Как получить данные с другого таймрейма не на следующих тиках, а на первом, как это получат родной таймфрейм, на котором создан индикатор?

 

Сделал так

когда данные не получены, обновляем график

ChartSetSymbolPeriod(0,Symbol(),PERIOD_CURRENT);

Но это даже не костыльное решение, а полное дилетантство

Как сделать нормальное решение, и почему так получается?

Как получить данные с другого таймрейма не на следующих тиках, а на первом, как это получат родной таймфрейм, на котором создан индикатор?
 
Vitaly Muzichenko #:
Как получить данные с другого таймрейма не на следующих тиках, а на первом, как это получат родной таймфрейм, на котором создан индикатор?

Как сделать нормальное решение, и почему так получается?

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

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