Ответ
 
Опции темы
Старый 18.09.2013, 20:56   #1561 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от ansol Посмотреть сообщение
hoz
Попробовал... Облом какой-то, надо подумать.

Подумай! Я уже надумался...

Сообщение от ansol Посмотреть сообщение
hoz
Про extern - переменные, объявленные в extern можно потом менять

Ну это если руками из под оболочки))

Сообщение от ansol Посмотреть сообщение
hoz
Вопрос на засыпку - а когда они обратно к дефолтным скинутся?

А хз, я такого не говорил..
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.09.2013, 07:29   #1562 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от hoz Посмотреть сообщение
По ходу ничего bs_Symbol не инициализируется первоначально при вызове её из функции.

Получается, что пусто и там, где не инициализоровалась переменная _string и в нашей доблесной bs_Symbol

Слушаю ещё варианты
Надо какой-нибудь ордер заселектить, чтобы это работало. У автора это видимо как-то гарантируется вне этой функции.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
ansol (19.09.2013)
Старый 19.09.2013, 07:33   #1563 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от hoz Посмотреть сообщение
Хм. extern сбрасываются? Это как?
Сообщение от ansol Посмотреть сообщение
hoz
Попробовал... Облом какой-то, надо подумать.
Про extern - переменные, объявленные в extern можно потом менять
Вопрос на засыпку - а когда они обратно к дефолтным скинутся?
Правила инициализации вообще не элементарные, вот тут добрый человек собрал все их вместе. forum.mql4.com/ru/45031
Кроме того, я слышал, что в последних билдах изменение значений extern переменных внутри кода работает некорректно. Как именно - не помню и не проверял, но от греха не советую этим заниматься.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
ansol (19.09.2013)
Старый 19.09.2013, 08:22   #1564 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от qqmber Посмотреть сообщение
Надо какой-нибудь ордер заселектить, чтобы это работало. У автора это видимо как-то гарантируется вне этой функции.
Тьфу, блин! Не заметил! Конечно, селектить надо!
Я нашел через getlasterrror - пишет 4105 no order selected
Проблем-то...
У автора это блок из трех или четырех библиотек и все они друг на друга завязаны, если смотреть выше выложенный один MQH

Последний раз редактировалось ansol; 19.09.2013 в 08:25.
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 19.09.2013, 10:05   #1565 (permalink)
Заблокирован
 
Аватар для Obloco
 
Регистрация: 19.08.2013
Сообщений: 16
Репутация: 3
Obloco
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
Поинты: 30

По умолчанию Помогите пожалуйста разобраться с машкой!


Мне хотелось бы чтобы TimeFrame работал правильно.
При такой записи все работает О'key.

PHP код:
 int limit;
     
int counted_bars=IndicatorCounted();
     if(
counted_bars>0counted_bars--;
     
limit=Bars-counted_bars;
for (
int i limit>= 0i--){
      
Buffer_1[i] = ((iMA(Symbol(), TimeFrame21,0,0PRICE_TYPICALi);

А при такой записи линии плывут, либо надо оставлять limit=Bars и удалять counted_bars. Очень хочется сохранить counted_bars. У меня без него все виснет.

PHP код:
int limit;
     
int counted_bars=IndicatorCounted();
     if(
counted_bars>0counted_bars--;
     
limit=Bars-counted_bars;
for (
int i limit>= 0i--){
      
Buffer_1[i] = (iMA(Symbol(), TimeFrame5,0,0PRICE_TYPICALi)-(iMA(Symbol(), TimeFrame21,0,0PRICE_TYPICALi);

Obloco вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.09.2013, 17:39   #1566 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от qqmber Посмотреть сообщение
Правила инициализации вообще не элементарные, вот тут добрый человек собрал все их вместе. forum.mql4.com/ru/45031.

Да уж, там есть кой-чиво полезного. Реально по полочкам всё разложено. Имеет ли это актуальность сейчас, это уже хз.. Но я взял для себя некоторые моменты. Особо интересно, что статические и глобальные сохраняют свои текущие значения во различных ситуациях.

Сообщение от qqmber Посмотреть сообщение
Кроме того, я слышал, что в последних билдах изменение значений extern переменных внутри кода работает некорректно. Как именно - не помню и не проверял, но от греха не советую этим заниматься.

В смысле? Т.е. работает эксперт, . залез в код и перебил значение переменной.. скомпилировал... и типа некорректно будет работать дальше эксперт?
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.09.2013, 17:41   #1567 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Цитата:
В смысле? Т.е. работает эксперт, . залез в код и перебил значение переменной.. скомпилировал... и типа некорректно будет работать дальше эксперт?
В смысле, не надо менять значение переменной extern в самом эксперте! Т.е. получил, засунул в другую переменную и там ее уже меняешь как хочешь, а исходную не трогаешь "во избежание"
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 19.09.2013, 17:45   #1568 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от ansol Посмотреть сообщение
Тьфу, блин! Не заметил! Конечно, селектить надо!
Я нашел через getlasterrror - пишет 4105 no order selected
Проблем-то...
У автора это блок из трех или четырех библиотек и все они друг на друга завязаны, если смотреть выше выложенный один MQH

У меня основные библиотеки все есть, не фига там не завязана эта переменная (bs_Symbol). Я уже перекопал всё. Изучая его логику, я уже понимаю, что у него куда идёт. Но это даже не библиотеки, а набор функций, хотя всё повязана одно на одно, от того и сложно читать изначально. А не библиотеки дословно, т.к. они не компялятся в таком виде, без доработки. Ну и автор мне сказал лично, что это первый вариант.. Т.е. сейчас у него уже другой вариант библ, и, возможно, уже всё будет как нужно.


Так. что если кто там увидел, а чём эта bs_Symbol завязана, я с радостью выслушаю Да вот только навряд ли.
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.09.2013, 17:47   #1569 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Цитата:
Так. что если кто там увидел, а чём эта bs_Symbol завязана, я с радостью выслушаю
Написали же выше - надо сначала сделать OrderSelect, тогда все будет работать, а без него не работает из-за "error 4105 no oreder selected"
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 19.09.2013, 17:51   #1570 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от Obloco Посмотреть сообщение
А при такой записи линии плывут, либо надо оставлять limit=Bars и удалять counted_bars. Очень хочется сохранить counted_bars. У меня без него все виснет.

PHP код:
int limit;
     
int counted_bars=IndicatorCounted();
     if(
counted_bars>0counted_bars--;
     
limit=Bars-counted_bars;
for (
int i limit>= 0i--){
      
Buffer_1[i] = (iMA(Symbol(), TimeFrame5,0,0PRICE_TYPICALi)-(iMA(Symbol(), TimeFrame21,0,0PRICE_TYPICALi);


А как насчёт скобок:

PHP код:
 Buffer_1[i] = ((iMA(Symbol(), TimeFrame5,0,0PRICE_TYPICALi)-(iMA(Symbol(), TimeFrame21,0,0PRICE_TYPICALi)) 
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.09.2013, 17:56   #1571 (permalink)
Новичок форума
 
Аватар для aqpfn
 
Регистрация: 29.06.2013
Сообщений: 16
Репутация: 11
aqpfn
Сказал(а) спасибо: 2
Поблагодарили 10 раз(а) в 2 сообщениях
Поинты: 2

По умолчанию Цикл While


Здравствуйте. Помогите дубу). Вот код:
PHP код:
int start(){
int a=1;
  
   while(
a<10){a=a+4;Alert(a);}
   return(
0);
  } 
Alert(a) в терминале выдает разные значения, когда выражения в теле цикла меняются местами: 13 и 9. Объясните пожалуйста почему так получается ?
aqpfn вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.09.2013, 18:00   #1572 (permalink)
Заблокирован
 
Аватар для Obloco
 
Регистрация: 19.08.2013
Сообщений: 16
Репутация: 3
Obloco
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
Поинты: 30
Скобки с одной стороны остались случайно, там переумножение было.
Obloco вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.09.2013, 20:49   #1573 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от ansol Посмотреть сообщение
В смысле, не надо менять значение переменной extern в самом эксперте! Т.е. получил, засунул в другую переменную и там ее уже меняешь как хочешь, а исходную не трогаешь "во избежание"

А как можно иначе? Кто же трогает исходные переменные то? То же самое, что значения массив-таймсерии не трогаю, так же и данные входные только используют, но не переопределяют, на сколько я знаю. По крайне мере я такого не встречал. По-моему это не верно. Да и не логично.
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.09.2013, 20:57   #1574 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от ansol Посмотреть сообщение
Написали же выше - надо сначала сделать OrderSelect, тогда все будет работать, а без него не работает из-за "error 4105 no oreder selected"

Он и там в библиотеке выбран.. Я не о том..
Тут был головняк в понимании того, что он хотел этим реализовать. По ходу, судя из моего эксперимента, условие:

PHP код:
fs_Symbol != bs_Symbol 

означает не сравнение с нулём, а сравнение с пустым значением. Т.е. тут важно проверить если ли хоть какое-то значение у переменной fs_Symbol. Если значения нет, т.е. вообще пустота, то не условие не выполнено. Вот что я тогда не понимал. Думал нафига это нужно..
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.09.2013, 22:01   #1575 (permalink)
 
Аватар для yupyalta
 
Регистрация: 23.04.2011
Адрес: Ялта
Сообщений: 583
Репутация: 3698
yupyalta yupyalta yupyalta yupyalta yupyalta yupyalta yupyalta yupyalta yupyalta yupyalta yupyalta
Сказал(а) спасибо: 1,289
Поблагодарили 3,700 раз(а) в 863 сообщениях
Поинты: 256
Отправить сообщение для yupyalta с помощью ICQ Отправить сообщение для yupyalta с помощью Skype™
Вот библиотека может кому и нужна .

________________________________________

Название файла: b-Error.rar download_trans.gif Скачать

Описание:
Библиотека функций b-Error предназначена для обеспечения программиста MQL4 функциями для работы с и над ошибками. В данный момент библиотека содержит только функцию ErrorRU(), которая возвращает краткое или подробное русскоязычное описание ошибки по её коду.

Для использования библиотеки b-Error в советнике нужно:

файл b-Error.mqh поместить в папку ..\experts\include\
в верхней части кода советника перед описаниями функций добавить строку:

#include <b-error.mqh>

в нужном месте советника обеспечить вызов функции ErrorRU()

Функция ErrorRU принимает два параметра, последний из которых является необязательным:

er - Код ошибки. Обязательный параметр.
po - Подробность описания. False - краткое описание, True - подробное. Необязательный параметр. Значение по умолчанию False.
Вложения:
Тип файла: rar b-Error.rar (5.1 Кб, 10 просмотров)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Важно только то сколько ты зарабатываешь, когда прав и сколько теряешь когда ошибаешься!
RadioForex: Слушать
yupyalta вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Viko2000 (01.05.2015)
Старый 20.09.2013, 05:22   #1576 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от aqpfn Посмотреть сообщение
Здравствуйте. Помогите дубу). Вот код:
PHP код:
int start(){
int a=1;
  
   while(
a<10){a=a+4;Alert(a);}
   return(
0);
  } 
Alert(a) в терминале выдает разные значения, когда выражения в теле цикла меняются местами: 13 и 9. Объясните пожалуйста почему так получается ?
Переменная а пробегает значения 1 5 9 13. Если Alert() стоит после инкремента, будет печатать 5 9 13, а если до, то 1 5 9.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
aqpfn (20.09.2013)
Старый 20.09.2013, 07:30   #1577 (permalink)
Новичок форума
 
Аватар для Leonup
 
Регистрация: 23.12.2011
Сообщений: 56
Репутация: 5
Leonup
Сказал(а) спасибо: 11
Поблагодарили 4 раз(а) в 4 сообщениях
Поинты: 58

По умолчанию Пересечение МА


Добрый день, уважаемые форумчане!

Сделать пересечение двух МА – несложно.
А вот как написать код, в котором, например, MA5 пересекает снизу вверх последовательно три МА: МА31, МА21, MA11?

Прошу Вашей помощи.
Заранее благодарен.
Leonup вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 20.09.2013, 08:11   #1578 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,525
Репутация: 3645
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,113
Поблагодарили 3,649 раз(а) в 1,470 сообщениях
Поинты: 2007
Сообщение от Leonup Посмотреть сообщение
Добрый день, уважаемые форумчане!

Сделать пересечение двух МА – несложно.
А вот как написать код, в котором, например, MA5 пересекает снизу вверх последовательно три МА: МА31, МА21, MA11?

Прошу Вашей помощи.
Заранее благодарен.
Можно конечно тупо перебрать все МА
if(MA5 > MA31 && MA5 > MA21 && MA5 > MA11)
А можно и подумать... Ведь если MA5 > MA11 то естесственно она будет выше MA21 и безусловно выше MA31. Конечно если MA одного метода (ma_method), по одинаковым ценам(applied_price) и без сдвига.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 20.09.2013, 08:36   #1579 (permalink)
Новичок форума
 
Аватар для Leonup
 
Регистрация: 23.12.2011
Сообщений: 56
Репутация: 5
Leonup
Сказал(а) спасибо: 11
Поблагодарили 4 раз(а) в 4 сообщениях
Поинты: 58
Сообщение от AlexeyVik Посмотреть сообщение
Можно конечно тупо перебрать все МА
if(MA5 > MA31 && MA5 > MA21 && MA5 > MA11)
А можно и подумать... Ведь если MA5 > MA11 то естесственно она будет выше MA21 и безусловно выше MA31. Конечно если MA одного метода (ma_method), по одинаковым ценам(applied_price) и без сдвига.
Спасибо за оперативный ответ. Я не указал, что у тех МА, которые пересекает М5 методы одинаковые, а вот цены соответственно такие: PRICE_HIGH, PRICE_CLOSE, PRICE_LOW.
Leonup вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 20.09.2013, 11:20   #1580 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от AlexeyVik Посмотреть сообщение
А можно и подумать... Ведь если MA5 > MA11 то естесственно она будет выше MA21 и безусловно выше MA31. Конечно если MA одного метода (ma_method), по одинаковым ценам(applied_price) и без сдвига.
Это почему вдруг? Машки могут быть расположены в любом порядке, в зависимости от истории.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Ответ

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 16:15. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
SEO by vBSEO