Перейти к содержимому

Theme© by Fisana
 

XTrade

Актуальное

Спроси у профи

Заказ советников и роботов

Опытные программисты реализуют ваши идеи в сжатые сроки и по приятной цене, от 10$. Отзывы и подробности

Также на форуме есть тема "Бесплатное написание скриптов", но заказы выполняются редко.

Обучение трейдингу

Бесплатный курс с описание всех ключевых моментов торговли на рынке форекс. После этого курса даже новички добиваются хороших результатов. Добавляйте в закладки.



Информер

<a href="http://www.mt5.com/ru/">Форекс портал</a>


Фотография
- - - - -

Прогрммировние на языке MQL5


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

Опрос: mql4 или mql5

Отношение к языкам mql4 и mql5

Вы не можете видеть результаты проса пока не проголосуете.
Голосовать Гости не могут голосовать

#1 OFFLINE   talliy

talliy

    Рвется в бой

  • Свой человек
  • PipPipPipPipPipPip
  • 132 сообщений
  • Баланс: 0$
  • Пол:Мужчина

Отправлено 17 Ноябрь 2012 - 04:27

Всех приветствую!
Хочу спросить про массивы.
Пытаюсь записать значение цены каждого тика в массив. Подскажите как это сделать?


 MqlTick last;
static double cena[];
ArrayResize(cena,200);
double ask;
      SymbolInfoTick(Symbol(),last);
      ask = last.ask;
   	for(int j=0;j>=200;j++){
              cena[j]=ask;
           	//break;
           	}


В таком исполнении не работает.

 
 

#2 OFFLINE   Alen_T

Alen_T

    Есть ещё порох в пороховницах

  • Специалист
  • PipPipPipPipPipPipPipPipPipPipPipPip
  • 874 сообщений
  • Баланс: 0$
  • Пол:Мужчина

Отправлено 17 Ноябрь 2012 - 12:41

Всех приветствую!
Хочу спросить про массивы.
Пытаюсь записать значение цены каждого тика в массив. Подскажите как это сделать?


 MqlTick last;
static double cena[];
ArrayResize(cena,200);
double ask;
      SymbolInfoTick(Symbol(),last);
      ask = last.ask;
   	for(int j=0;j>=200;j++){
              cena[j]=ask;
   			//break;
   			}


В таком исполнении не работает.


SymbolInfoTick() - это только текущего тика.
У тебя в цикле нет перебора тиков, а присваивается значение ask текущего тика всем членам массива.
Ищи функцию свойств для задаваемого тика и дополняй: cena[j] =
С mq5 не занимался, поэтому конкретно функцию дать не могу. (Ее может и не быть:scratch_head:)
Ты это, заходи, если что...(С)

#3 OFFLINE   talliy

talliy

    Рвется в бой

  • Свой человек
  • PipPipPipPipPipPip
  • 132 сообщений
  • Баланс: 0$
  • Пол:Мужчина

Отправлено 22 Ноябрь 2012 - 17:13

SymbolInfoTick() - это только текущего тика.
У тебя в цикле нет перебора тиков, а присваивается значение ask текущего тика всем членам массива.
Ищи функцию свойств для задаваемого тика и дополняй: cena[j] =
С mq5 не занимался, поэтому конкретно функцию дать не могу. (Ее может и не бытьИзображение)


Кому интересно! Решение нашел на другом форуме. Пользователь Laryx подсказал такой вариант:
Вне функций

double cena[];
int iNumOfTick;
MqlTick last

В инициализации

ArrayResize(cena,200);
iNumOfTick = 0;

В обработчике тика:

SymbolInfoTick (Symbol (),last);
if (iNumOfTick<200) 
{
cena[iNumOfTick]=last.ask;
++iNumOfTick
}

В месте использования всех цен:

for ( int  j=0;j>iNumOfTick;j++)
{
DoSomething(cena[j]);
}
Вам следует хранить значение номера тика, и использовать его в качестве индекса.

#4 OFFLINE   LEXA_KB

LEXA_KB

    Первый выстрел

  • Частый гость
  • PipPip
  • 4 сообщений
  • Баланс: 0$

Отправлено 15 Октябрь 2013 - 16:33

Уважаемые программисты помогите подлечить советника!

Прикрепленные файлы





Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей

Copyright © 2016 Your Company Name