Специально выбрал период графика в 2000 году(когда пятый знак везде равнялся 0) в котором есть свечи открывшиеся по цене которая встречается среди значений массива.
По моему замыслу - на их открытии должен сработать ордер - но этого не происходит......П О Ч Е М У????
int start()
{
double Price=iOpen (Symbol (),0,0);
double SL=NormalizeDouble (Price-3000*Point, Digits);
double TP=NormalizeDouble (Price+100*Point, Digits);
double massiv [4]={0.85370,0.85690, 0.85970 ,0.86170};//объявление и инициализация массиваdouble value = Bid ;// параметру value функции ArrayBsearch присваивается значение текущей ценыint S = ArrayBsearch( massiv[4], value, WHOLE_ARRAY, 0, MODE_ASCEND); //функция ищет самое близкое к текущей цене значениеif (Bid == massiv[S])//если текущая цена равна значению возвращенному функцией .if (Bid==Price )// и данная цена есть цена открытия нового бараOrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP,"jfh",123 );//открыть ордер
}
Специально выбрал период графика в 2000 году(когда пятый знак везде равнялся 0) в котором есть свечи открывшиеся по цене которая встречается среди значений массива.
По моему замыслу - на их открытии должен сработать ордер - но этого не происходит......П О Ч Е М У????
int S = ArrayBsearch( massiv, value, WHOLE_ARRAY, 0, MODE_ASCEND); //функция ищет самое близкое к текущей цене значение
massiv[4] означает 4-й элемент массива massiv, а надо передать в функцию сам массив, чтобы был поиск...
Специально выбрал период графика в 2000 году(когда пятый знак везде равнялся 0) в котором есть свечи открывшиеся по цене которая встречается среди значений массива.
По моему замыслу - на их открытии должен сработать ордер - но этого не происходит......П О Ч Е М У????
Еще хорошо бы при сравнении чисел double записывать вместо
Специально выбрал период графика в 2000 году(когда пятый знак везде равнялся 0) в котором есть свечи открывшиеся по цене которая встречается среди значений массива.
По моему замыслу - на их открытии должен сработать ордер - но этого не происходит......П О Ч Е М У????
Уже пора переходить к методу "по-взрослому"!!! - поэкспериментировать со своим кодом, чтобы добится результата.
Совет: привыкайте сравнивать переменные через нормализацию их разности:
double ld_Delta = 10. * Point;
if (NormalizeDouble (MathAbs (Bid - Price), Digits) <= ld_Delta)// и данная цена есть цена открытия нового бара
{OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP,"jfh",123);}//открыть ордер
а для упомянутого мной эксперимента "поиграйте" с ld_Delta.
Понял.Большое спасибо.Подскажите еще пожалуйста почему моя функция не работает (пост выше).
Большое спасибо.Если я научусь программировать......то только благодаря Вам.....!
Если научитесь, то только благодаря своим усидчивости и трудолюбию. Моя роль очень скромная, а цели корыстны (помогая Вам, тренирую собственную способность быстро находить ошибки и недочеты, что сокращает собственное потраченное время на программировние, а заодно держит моск в тонусе. Плюс вдруг какая-то ценная идея проскользнет? Я ее украду:)))
Если научитесь, то только благодаря своим усидчивости и трудолюбию. Моя роль очень скромная, а цели корыстны (помогая Вам, тренирую собственную способность быстро находить ошибки и недочеты, что сокращает собственное потраченное время на программировние, а заодно держит моск в тонусе. Плюс вдруг какая-то ценная идея проскользнет? Я ее украду:)))
Квалифицированный совет - сильно ускоряет процесс обучения.Самостоятельно ответ на вопрос можно искать долго методом тыка (потому что не знаешь в каком направлении изучать)
Квалифицированный совет - сильно ускоряет процесс обучения.Самостоятельно ответ на вопрос можно искать долго методом тыка (потому что не знаешь в каком направлении изучать)
Подскажите еще пожалуйста вот что
Хочу объявить и инициализировать массив во включаемом файле.
Вызвал мастера.
Выбрал - Бибилиотека функций
Присвоил имя.
Все убрал и объявили и проинициализировал массив.
Сохранил файл в папке incluide.Он сохранился в ней с расширением mq4 а не mqh
Вставил в код строку вызова файла и указал расширение mqh
Но компилятор ругается
'UYTR.mqh' - cannot open the program file C:\Program Files\Alpari NZ MT4(2)\experts\hhhh.mq4 (12, 2)
Вероятно дело в разночтении в расширениях между фалом в вызове в коде и файлом в папке incluide.
Подкажите пожалуйста - что делать в данной ситуации.
Спасибо.
Если через мастер, то там есть возможность сразу создать именно включаемый файл, который сохранится с расширением mqh в папке include. После этого его можно жобавить в любую программу путем #include <>
Почему не открываются ордера!
Подскажите почему не работает этот код.
Специально выбрал период графика в 2000 году(когда пятый знак везде равнялся 0) в котором есть свечи открывшиеся по цене которая встречается среди значений массива.
По моему замыслу - на их открытии должен сработать ордер - но этого не происходит......П О Ч Е М У????
В строке 100 значений с запятой после первого знака(т.е. цена)
Выделяю строку
Главная - найти и заменить
Меняю все запятые на точки - успешно.
Теперь между значениями нужно поставить запятые
Теперь так: Файл - Сохранить как - выбираем тип файла CSV (разделители - запятые). Сохранить. Имеем на выходе текстовый файл нужного формата...
Почему не открываются ордера!
Подскажите почему не работает этот код.
Специально выбрал период графика в 2000 году(когда пятый знак везде равнялся 0) в котором есть свечи открывшиеся по цене которая встречается среди значений массива.
По моему замыслу - на их открытии должен сработать ордер - но этого не происходит......П О Ч Е М У????
massiv[4] означает 4-й элемент массива massiv, а надо передать в функцию сам массив, чтобы был поиск...
Теперь так: Файл - Сохранить как - выбираем тип файла CSV (разделители - запятые). Сохранить. Имеем на выходе текстовый файл нужного формата...
Понял.Большое спасибо.Подскажите еще пожалуйста почему моя функция не работает (пост выше).
Большое спасибо.Если я научусь программировать......то только благодаря Вам.....!
Почему не открываются ордера!
Подскажите почему не работает этот код.
Специально выбрал период графика в 2000 году(когда пятый знак везде равнялся 0) в котором есть свечи открывшиеся по цене которая встречается среди значений массива.
По моему замыслу - на их открытии должен сработать ордер - но этого не происходит......П О Ч Е М У????
Еще хорошо бы при сравнении чисел double записывать вместо
if (Bid == massiv[S])вот так:
massiv[4] означает 4-й элемент массива massiv, а надо передать в функцию сам массив, чтобы был поиск...
Почему не открываются ордера!
Подскажите почему не работает этот код.
Специально выбрал период графика в 2000 году(когда пятый знак везде равнялся 0) в котором есть свечи открывшиеся по цене которая встречается среди значений массива.
По моему замыслу - на их открытии должен сработать ордер - но этого не происходит......П О Ч Е М У????
Уже пора переходить к методу "по-взрослому"!!! - поэкспериментировать со своим кодом, чтобы добится результата.
Совет: привыкайте сравнивать переменные через нормализацию их разности:
а для упомянутого мной эксперимента "поиграйте" с ld_Delta.
Понял.Большое спасибо.Подскажите еще пожалуйста почему моя функция не работает (пост выше).
Большое спасибо.Если я научусь программировать......то только благодаря Вам.....!
Если научитесь, то только благодаря своим усидчивости и трудолюбию. Моя роль очень скромная, а цели корыстны (помогая Вам, тренирую собственную способность быстро находить ошибки и недочеты, что сокращает собственное потраченное время на программировние, а заодно держит моск в тонусе. Плюс вдруг какая-то ценная идея проскользнет? Я ее украду:)))
Если научитесь, то только благодаря своим усидчивости и трудолюбию. Моя роль очень скромная, а цели корыстны (помогая Вам, тренирую собственную способность быстро находить ошибки и недочеты, что сокращает собственное потраченное время на программировние, а заодно держит моск в тонусе. Плюс вдруг какая-то ценная идея проскользнет? Я ее украду:)))
Квалифицированный совет - сильно ускоряет процесс обучения.Самостоятельно ответ на вопрос можно искать долго методом тыка (потому что не знаешь в каком направлении изучать)
Подскажите еще пожалуйста вот что
Хочу объявить и инициализировать массив во включаемом файле.
Вызвал мастера.
Выбрал - Бибилиотека функций
Присвоил имя.
Все убрал и объявили и проинициализировал массив.
Сохранил файл в папке incluide.Он сохранился в ней с расширением mq4 а не mqh
Вставил в код строку вызова файла и указал расширение mqh
Но компилятор ругается
'UYTR.mqh' - cannot open the program file C:\Program Files\Alpari NZ MT4(2)\experts\hhhh.mq4 (12, 2)
Вероятно дело в разночтении в расширениях между фалом в вызове в коде и файлом в папке incluide.
Подкажите пожалуйста - что делать в данной ситуации.
Спасибо.
incluide
Квалифицированный совет - сильно ускоряет процесс обучения.Самостоятельно ответ на вопрос можно искать долго методом тыка (потому что не знаешь в каком направлении изучать)
Подскажите еще пожалуйста вот что
Хочу объявить и инициализировать массив во включаемом файле.
Вызвал мастера.
Выбрал - Бибилиотека функций
Присвоил имя.
Все убрал и объявили и проинициализировал массив.
Сохранил файл в папке incluide.Он сохранился в ней с расширением mq4 а не mqh
Вставил в код строку вызова файла и указал расширение mqh
Но компилятор ругается
'UYTR.mqh' - cannot open the program file C:\Program Files\Alpari NZ MT4(2)\experts\hhhh.mq4 (12, 2)
Вероятно дело в разночтении в расширениях между фалом в вызове в коде и файлом в папке incluide.
Подкажите пожалуйста - что делать в данной ситуации.
Спасибо.
Если через мастер, то там есть возможность сразу создать именно включаемый файл, который сохранится с расширением mqh в папке include. После этого его можно жобавить в любую программу путем #include <>
то есть