АвторСообщение





Сообщение: 122
Зарегистрирован: 05.03.13
Репутация: 1
ссылка на сообщение  Отправлено: 14.04.14 09:56. Заголовок: Я в шоке! Подскажите.


Всем привет!
Я в шоке! Выпал из рынка на 3,5 месяца, а тут такие перемены. Игорь подскажи, где можно ознакомиться с изменениями в MQL4?
Хотел перенести все данные на новый комп, но некоторые индикаторы после компиляции перестают работать. Вот один из них.
http://gfile.ru/a8cCP
Хотя не перекомпилированные файлы работают.
Компиляция ошибок в коде не выявляет. Но при отладке выдается ошибка формирования массива стр.67. Но в чем ошибка не пойму.
Буду благодарен, если найдешь время исправить.



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 203 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 All [только новые]







Сообщение: 489
Зарегистрирован: 05.03.13
Репутация: 1
ссылка на сообщение  Отправлено: 11.05.16 15:10. Заголовок: Игорь, подскажи, мож..


Игорь, подскажи, можно ли с помощью обработчика"CHARTEVENT_OBJECT_ENDEDIT — событие окончания редактирования текста в поле ввода графического объекта LabelEdit" задавать советнику значения типа double? Если ДА и если не сложно, напиши пример.

С уважением! Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 2162
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 11.05.16 17:05. Заголовок: Sergey пишет: Игорь..


Sergey пишет:

 цитата:
Игорь, подскажи, можно ли с помощью обработчика"CHARTEVENT_OBJECT_ENDEDIT — событие окончания редактирования текста в поле ввода графического объекта LabelEdit" задавать советнику значения типа double? Если ДА и если не сложно, напиши пример.


В смысле, чтобы в обработчике

 цитата:
void OnChartEvent(const int id, const long& lparam, const double& dparam, const string& sparam)


параметр sparam был не строковый, а типа double? Если так, то нельзя такое делать. Да и не нужно. Ведь строку легко преобразовать в вещественное значение при помощи функции StringToDouble.
Таким образом, алгоритм будет следующий:

 цитата:
void OnChartEvent(const int id, const long& lparam, const double& dparam, const string& sparam)
{
if (sparam != MY_LABEL_EDIT)
return;
string text = ObjectGetString(0, sparam, OBJPROP_TEXT);
double value = StringToDouble(text);
}



Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 491
Зарегистрирован: 05.03.13
Репутация: 1
ссылка на сообщение  Отправлено: 11.05.16 20:38. Заголовок: Scriptong пишет: па..


Scriptong пишет:

 цитата:
параметр sparam был не строковый, а типа double?


Нет. К примеру я хочу изменить лот советнику на поле графика, не вызывая настройки советника. Конкретный пример- встроенная функция "Торговля в один клик". Лот можно менять набирая текст на клавиатуре. То есть мне нужно вывести часть настроек советника в таблицу на графике цены, так чтобы их можно было задавать, а они подхватывались советником, как будто были изменены в настройках.

С уважением! Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 2165
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 12.05.16 10:43. Заголовок: Sergey пишет: Нет. ..


Sergey пишет:

 цитата:
Нет. К примеру я хочу изменить лот советнику на поле графика, не вызывая настройки советника. Конкретный пример- встроенная функция "Торговля в один клик". Лот можно менять набирая текст на клавиатуре. То есть мне нужно вывести часть настроек советника в таблицу на графике цены, так чтобы их можно было задавать, а они подхватывались советником, как будто были изменены в настройках.


Посмотрите сам пример. Именно этому случаю он и соответствует.

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 495
Зарегистрирован: 05.03.13
Репутация: 1
ссылка на сообщение  Отправлено: 12.05.16 18:21. Заголовок: Scriptong пишет: По..


Scriptong пишет:

 цитата:
Посмотрите сам пример. Именно этому случаю он и соответствует.


Игорь, огромное спасибо! Разобрался. Сделал тестовый советник под это дело, все получилось.

С уважением! Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 514
Зарегистрирован: 05.03.13
Репутация: 1
ссылка на сообщение  Отправлено: 30.06.16 11:29. Заголовок: Игорь, подскажи в че..


Игорь, подскажи в чем проблема....
Вот часть кода из советника
#define NumOrd 1 // Количество элементов массива (стратегий)
struct OrdInfo
{
double isPrice;
double isSL;
double isTP;
double isLot;
int isTicket;
int isType;
int isMagic;
string isComment;
};
OrdInfo g_ordInfo|NumOrd|;
//----
void Terminal()
{
Qnt=0; // Счётчик количества ордеров
//----
for(int i=0; i<OrdersTotal(); i++) // По рыночн. и отлож. ордерам
{
if(OrderSelect(i,SELECT_BY_POS)==true //Если есть следующ.
&& OrderSymbol()==Symbol() //.. и наша вал.пара
&& OrderMagicNumber()!=0 && OrderMagicNumber()<=NumOrd) //.. и он открыт экспертом
{
Alert("1");
g_ordInfo|i|.isPrice = OrderOpenPrice(); // Цена открытия ордера
Alert("2");
g_ordInfo|i|.isSL=OrderStopLoss(); // Стоп-лосс ордера
g_ordInfo|i|.isTP=OrderTakeProfit(); // Тейк-профит ордера
g_ordInfo|i|.isLot=OrderLots(); // Количество лотов
g_ordInfo|i|.isTicket=OrderTicket(); // Номер ордера
g_ordInfo|i|.isType=OrderType(); // Тип ордера
g_ordInfo|i|.isMagic=OrderMagicNumber(); // ID ордера
g_ordInfo|i|.isComment=OrderComment(); // Комментарий ордера
Qnt++; // Колич. ордеров
}
}
}

Советник прекрасно работает в тестере стратегий. Однако в реале зависает между метками 1 и 2. Причем комп не виснет, в журнале ничего. Но тики не проходят.

С уважением! Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 2227
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 30.06.16 19:32. Заголовок: Sergey пишет: Совет..


Sergey пишет:

 цитата:
Советник прекрасно работает в тестере стратегий. Однако в реале зависает между метками 1 и 2. Причем комп не виснет, в журнале ничего. Но тики не проходят.


Проблема в неправильной записи информации об ордерах в массив. Нумерация ордеров и нумерация элементов массива совпадает, а не должна бы. Поэтому в тестере и работает все прекрасно - там нет "чужих" ордеров, все свои.

Правильная организация цикла такая:

 цитата:
for(int i=0; i<OrdersTotal(); i++) // По рыночн. и отлож. ордерам
{
if(OrderSelect(i,SELECT_BY_POS)==true //Если есть следующ.
&& OrderSymbol()==Symbol() //.. и наша вал.пара
&& OrderMagicNumber()!=0 && OrderMagicNumber()<=NumOrd) //.. и он открыт экспертом
{
g_ordInfo[Qnt].isPrice = OrderOpenPrice(); // Цена открытия ордера
g_ordInfo[Qnt].isSL=OrderStopLoss(); // Стоп-лосс ордера
g_ordInfo[Qnt].isTP=OrderTakeProfit(); // Тейк-профит ордера
g_ordInfo[Qnt].isLot=OrderLots(); // Количество лотов
g_ordInfo[Qnt].isTicket=OrderTicket(); // Номер ордера
g_ordInfo[Qnt].isType=OrderType(); // Тип ордера
g_ordInfo[Qnt].isMagic=OrderMagicNumber(); // ID ордера
g_ordInfo[Qnt].isComment=OrderComment(); // Комментарий ордера
Qnt++; // Колич. ордеров
}
}



Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 516
Зарегистрирован: 05.03.13
Репутация: 1
ссылка на сообщение  Отправлено: 30.06.16 22:34. Заголовок: Scriptong пишет: Пр..


Scriptong пишет:

 цитата:
Правильная организация цикла такая:


Огромное спасибо! Ведь все так явно, но почему-то только когда тебе ткнут пальцем. Понимаю, как не просто разбираться в чужих писульках... Спасибо!

С уважением! Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 515
Зарегистрирован: 05.03.13
Репутация: 1
ссылка на сообщение  Отправлено: 30.06.16 11:45. Заголовок: Блин! Проверил на ре..


Блин! Проверил на реале в Alpfri все работает, а в FXOpen нет. Что за лажа?

С уважением! Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 523
Зарегистрирован: 05.03.13
Репутация: 1
ссылка на сообщение  Отправлено: 28.08.16 15:30. Заголовок: Нужно сделать описан..


Нужно сделать описание объекта "кнопка". Рядом с объектом "кнопка" Установил "OBJ_LABEL" - "?". Как сделать, чтобы при наведении на "?" высвечивалось описание , а не имя объекта с ценой? Если выложите готовый блок алгоритма, буду очень признателен.

С уважением! Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 2315
Зарегистрирован: 03.03.13
Откуда: Украина, Каменское (Днепродзержинск)
Репутация: 3
ссылка на сообщение  Отправлено: 28.08.16 16:05. Заголовок: Sergey пишет: Нужно..


Sergey пишет:

 цитата:
Нужно сделать описание объекта "кнопка". Рядом с объектом "кнопка" Установил "OBJ_LABEL" - "?". Как сделать, чтобы при наведении на "?" высвечивалось описание , а не имя объекта с ценой? Если выложите готовый блок алгоритма, буду очень признателен.


Никакого алгоритма там нет. При создании кнопки нужно лишь воспользоваться назначением свойства всплывающей подсказки:

 цитата:
ObjectSetInteger(0, name, OBJPROP_TOOLTIP, <текст подсказки>);



Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 524
Зарегистрирован: 05.03.13
Репутация: 1
ссылка на сообщение  Отправлено: 29.08.16 02:41. Заголовок: Scriptong пишет: Ни..


Scriptong пишет:

 цитата:
Никакого алгоритма там нет. При создании кнопки нужно лишь воспользоваться назначением свойства всплывающей подсказки:

 цитата:
ObjectSetInteger(0, name, OBJPROP_TOOLTIP, <текст подсказки>);



Спасибо, на конец разобрался. ObjectSetString(0, name, OBJPROP_TOOLTIP, "текст"); Оказывается упускал первый параметр (chart_id) в результате получал ошибку и не мог понять в чем дело.

С уважением! Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 534
Зарегистрирован: 05.03.13
Репутация: 1
ссылка на сообщение  Отправлено: 07.10.16 18:38. Заголовок: Игорь, знаком ли ты ..


Игорь, знаком ли ты с программой Forex Tester. Можно ли в ней тестировать индикаторы MQL4?

С уважением! Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 2340
Зарегистрирован: 03.03.13
Откуда: Украина, Каменское (Днепродзержинск)
Репутация: 3
ссылка на сообщение  Отправлено: 07.10.16 21:27. Заголовок: Sergey пишет: Игорь..


Sergey пишет:

 цитата:
Игорь, знаком ли ты с программой Forex Tester. Можно ли в ней тестировать индикаторы MQL4?


Да, и не только по наслышке. В 2009-ом году переводил для Forex Tester один из индикаторов MQL4. Тогда же писал рекламную статью для них в журнале Fortrader.ru (47-й номер)

Sergey пишет:

 цитата:
Можно ли в ней тестировать индикаторы MQL4?


Нет, нельзя. Нужно переводить программы на Delphi или на C++.
Но справедливости ради нужно сказать, что API Forex Tester'a намеренно копирует функционал MQL4. Там даже также функции называются. Поэтому чисто алгоритмически перевод не очень сложен.

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 535
Зарегистрирован: 05.03.13
Репутация: 1
ссылка на сообщение  Отправлено: 08.10.16 07:54. Заголовок: Scriptong пишет: Н..


Scriptong пишет:

 цитата:
Нужно переводить программы на Delphi или на C++.


Спасибо.

С уважением! Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 203 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  2 час. Хитов сегодня: 9
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет