Форум » Консультации по программированию » Я новичок. (продолжение) » Ответить

Я новичок. (продолжение)

Anatoliy: Пишу пользовательский индикатор на основе пересечение уровни 20 и 80. Если главная линия Stochastic пересекла уровень 80 (сверху - вниз), то выводит стрелка Sell на ценовых графиках, а если главная линия Stochastic пересекла уровень 20 (снизу - верх), то стрелка Buy на ценовых графиках. #property strict #property indicator_chart_window #property indicator_buffers 2 //--- plot Buy #property indicator_type1 DRAW_ARROW #property indicator_color1 clrGreen #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- plot Sell #property indicator_type2 DRAW_ARROW #property indicator_color2 clrRed #property indicator_style2 STYLE_SOLID #property indicator_width2 1 //--- input parameters //--- indicator buffers double BuyBuffer[]; double SellBuffer[]; //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж //+------------------------------------------------------------------+ //| Функция инициализации пользовательского индикатора | //+------------------------------------------------------------------+ int init() { //--- SetIndexBuffer(0,BuyBuffer); SetIndexArrow(0,233); SetIndexStyle(0,DRAW_ARROW); //--- SetIndexBuffer(1,SellBuffer); SetIndexArrow(1,234); SetIndexStyle(1,DRAW_ARROW); //--- SetIndexEmptyValue(0,80.0); SetIndexEmptyValue(1,20.0); //--- return(0); } //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж //+------------------------------------------------------------------+ //| Функция пользовательского индикатора итерации | //+------------------------------------------------------------------+ int start() { //--- int i, Counted_bars; double mainStoc_1 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,1); // бар 1 double mainStoc_2 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,2); // бар 2 Counted_bars=IndicatorCounted(); // Количество просчитанных баров i=Bars-Counted_bars-1; for(i=0;i>=0;i--) { if (mainStoc_2 > 80.0 && mainStoc_1 < 80.0) SellBuffer = Low-5*Point; else SellBuffer = 0.0; if (mainStoc_2 < 20.0 && mainStoc_1 > 20.0) BuyBuffer = High+5*Point; else BuyBuffer = 0.0; } //--- return(0); } И в результатах индикатор вообще не работает. Как его исправит?

Ответов - 15

Anatoliy: Всем привет! Как пользоваться с помощью препроцессора #import и для чего предназначен? Выводят две ошибки: 2015.10.18 21:14:24.994 OnePointValue EURUSD,M5: unresolved import function call 2015.10.18 21:14:24.994 Cannot find 'Func1' in '\Calculator.ex4' Пример, в скрипте: #import "\\Template\\Calculator.ex4" void Func1(void); #import

Balbesik: Отсутствие правки - АДМИН это твоя глобальная ошибка. Мало того, что ты людей ссоришь, ты к адекватному разговору ( на "Ты") мешаешь! Ты забыл главный принцип твоего бизнеса - активы (без мозгов), это просто активы (денег не приносят)! Недвижимость (активы) , права и проч. разрешиловка. Поверь они ничего не решают. Я в 90 - е с Ходором на ВДНХ водку вместе пили. "Менатеп" тогда под Чубайсом лежал. Все было и прошло - ну не уподобляйся!

Scriptong: Balbesik пишет: Отсутствие правки - АДМИН это твоя глобальная ошибка. Мало того, что ты людей ссоришь, ты к адекватному разговору ( на "Ты") мешаешь! Ты забыл главный принцип твоего бизнеса - активы (без мозгов), это просто активы (денег не приносят)! Недвижимость (активы) , права и проч. разрешиловка. Поверь они ничего не решают. Я в 90 - е с Ходором на ВДНХ водку вместе пили. "Менатеп" тогда под Чубайсом лежал. Все было и прошло - ну не уподобляйся! И тебе привет... Если это было адресовано мне, то я вообще ничего не понял.


Scriptong: Требования к импортируемым функциям следующие: 1. Такие функции должны находиться в файлах библиотек (папка Libraries) или в файлах, расположенных в текущем каталоге. 2. Функция должна быть объявлена как экспортируемая (директива export), иначе она не будет видна внешним программам. 3. Для программы, которая импортирует функцию, должен быть разрешен импорт на уровне терминала: при включении программы перейти на закладку "Общие" и установить галку "Разрешить импорт из внешних экспертов". Код импортирующей программы: #import "TestLibrary.ex4" int MyCalculator(int value1, int value2); #import void OnStart() { Print("Sum of values is ", MyCalculator(5, 6)); } Библиотека: int MyCalculator(int value, int value2) export { return (value + value2); }

сергей: Scriptong пишет: здравствуйте знаком с вашими работами в часности с индикатором есть идеи по модернизации индикаторов можно ли по общаться по этой теме с вами? спасибо

Scriptong: сергей пишет: здравствуйте знаком с вашими работами в часности с индикатором есть идеи по модернизации индикаторов можно ли по общаться по этой теме с вами? спасибо Конечно. Для этого форум и существует.

сергей: олл

Anatoliy: Есть возможности с помощью советника вызвать индикатор подокна для отображения?

Scriptong: Anatoliy пишет: Есть возможности с помощью советника вызвать индикатор подокна для отображения? В МТ5 есть специальная функция для этого - ChartIndicatorAdd. В МТ4, к сожалению, нет. Показания другого индикатора можно отобразить только в одном случае: индикатор отображает свои показания в виде графических объектов на ценовом графике, а не в подокне. Это делается при помощи обычного iCustom. Способ отображения индикатора, являющегося подокном, средствами MQL4 мне неизвестен. Хотя это можно сделать, если использовать WinAPI. Так, у Вадима Жунко была соответствующая DLL, но ее нужно постоянно поддерживать, т. к. терминал постоянно меняется.

Anatoliy: Scriptong пишет: В МТ5это крутая штука, но не все брокеры поддерживают и есть только демо версия, а зачем, похоже что не уверены или боятся, т.к. MT5 вышел на свете уже давно и вошел в популярности. Scriptong пишет: индикатор отображает свои показания в виде графических объектов на ценовом графике, а не в подокне. Это делается при помощи обычного iCustomмне это понятно. В добавку, очень похоже инструмента как у Сергея Ковалёва, в ручную набрасывать индикатора и советника, удобный инструмент и не закрывает ценовой график. Как бы единая программа пока это задумка. Есть вариант, сегодня и вчера я пролистал в документации, с помощью ChartApplyTemplate вызвать. Scriptong пишет: Хотя это можно сделать, если использовать WinAPI. Так, у Вадима Жунко была соответствующая DLLГде можно увидеть или почитать? Scriptong пишет: но ее нужно постоянно поддерживать, т. к. терминал постоянно меняется. т. е. если Build меняется, то алгоритмы постоянно модифицировать.

Scriptong: Anatoliy пишет: Есть вариант, сегодня и вчера я пролистал в документации, с помощью ChartApplyTemplate вызвать. Для этого нужно сначала создать такой шаблон вручную. Программно, без WinAPI, этого не достичь. Кроме того, ChartApplyTemplate тяжело контролировать. Так, функция может вернуть true, но это вовсе не означает, что команда успешно выполнена. Это лишь означает, что указанный шаблон найден и отправлено сообщение окну. Anatoliy пишет: Где можно увидеть или почитать? Вот одна из публикаций. Но не уверен, что еще работает. Последний раз работало в 605-ом билде. Сейчас уже 988-ой. Anatoliy пишет: т. е. если Build меняется, то алгоритмы постоянно модифицировать. Дело в том, что методы, используемые в библиотеках Вадима, являются недокументированными возможностями терминала. А раз так, то и поддерживать их компания MetaQuotes не обязана. При выходе очередного билда придется проверять функционал всей библиотеки и вносить правки, лично разыскивая, что же изменилось в новом билде. Потому и рекомендую никогда не закладываться на недокументированные возможности той или иной программы.

neval: незанимайтесь ерундой, ваша идея никогда небудет работать прыбильно

Anatoliy: neval пишет: незанимайтесь ерундой, ваша идея никогда небудет работать прыбильно мне нужно информационный инструмент

Scriptong: neval пишет: незанимайтесь ерундой, ваша идея никогда небудет работать прыбильно Neval, ну ей богу - это ведь чисто технический вопрос, который никак не затрагивает стратегии ведения торговли.

Anatoliy: Scriptong пишет: Neval, ну ей богу - это ведь чисто технический вопрос, который никак не затрагивает стратегии ведения торговли. Спасибо за поддержку.



полная версия страницы