Карлсон Опубликовано 21 августа, 2010 Жалоба Поделиться Опубликовано 21 августа, 2010 Здравствуйте коллеги.Приходится сидеть с ребенком и процесс контроля за ценой бывает затруднителен.Не могли бы .если не трудно. скрипт сделать для такого отображения цены как на рисунке.Спасибо.Буду очень признателен.http://s61.radikal.ru/i173/1007/34/2eaf2cf0c259.jpgПриветы.Сразу скажу,что не программист.Вот что получилось.Код://+------------------------------------------------------------------+//| price1.mq4 |//| Copyright © 2010, MetaQuotes Software Corp. |//| http://www.metaquotes.net |//+------------------------------------------------------------------+#property copyright "Copyright © 2010, MetaQuotes Software Corp."#property link "http://www.metaquotes.net" #property indicator_chart_window//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init() {//---- indicators // новый объект TextLabel ObjectSetText("label_object", "Oleg", 72, "Times New Roman", Black); if(!ObjectCreate("label_object", OBJ_LABEL, 0, 0, 0)) { Print("error: can't create label_object! code #",GetLastError()); return(0); } ObjectSet("label_object", OBJPROP_XDISTANCE, 100); ObjectSet("label_object", OBJPROP_YDISTANCE, 100); //---- return(0); }//+------------------------------------------------------------------+//| Custom indicator deinitialization function |//+------------------------------------------------------------------+int deinit() {//---- //---- return(0); }//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+int start() { int counted_bars=IndicatorCounted();//---- //---- return(0); }//+------------------------------------------------------------------+Вот результат.Вопрос такой,какая переменная у цены,чтобы поставить вместо слова Oleg?http://i064.radikal.ru/1008/5b/33938cfe6e5f.jpg Ссылка на комментарий Поделиться на другие сайты Поделиться
sidsv3413 Опубликовано 1 декабря, 2010 Жалоба Поделиться Опубликовано 1 декабря, 2010 Здравствуйте, пытаюсь прописать индикатор, но не получается - маловато опыта, только пытаюсь программирование осваивать.Смысл в том, что мне нужно обработать от текущего бара предыдущие 21 бар по формуле и нарисовать по этим результатам линию, но как раз эта линия и не получается.Посмотрите в чем моя ошибка, а то по учебнику Ковалева в инете до меня не доходит без наставника //--------------------------------------------------------------------// cena.mq4 // Предназначен для использования в качестве примера.//--------------------------------------------------------------------#property indicator_chart_window // Индик. рисуется в основном окне#property indicator_buffers 1 // Количество буферов#property indicator_color1 Red // Цвет первой линии extern int History =500; // Колич.баров в расчётной историиextern int Aver_Bars=22; // Количество баров для расчёта double Line_0[]; // Открытие массивов данных//--------------------------------------------------------------------int init() // Специальная функция init() {//-------------------------------------------------------------------- SetIndexBuffer(0,Line_0); // Назначение массива буферу 0 SetIndexStyle (0,DRAW_LINE,STYLE_DOT,1);// Стиль линии//-------------------------------------------------------------------- return; // Выход из спец. ф-ии init() }//--------------------------------------------------------------------int start() // Специальная функция start() { int i, // Индекс бара n, // Формальный параметр (индекс) Counted_bars; // Количество просчитанных баров double A; // Объявление моей функции//-------------------------------------------------------------------- Counted_bars=IndicatorCounted(); // Количество просчитанных баров i=Bars-Counted_bars-1; // Индекс первого непосчитанного if (i>History-1) // Если много баров то .. i=History-1; // ..рассчитывать заданное колич. while(i>=0) // Цикл по непосчитанным барам { A=0.0; // Обнуление в начале цикла A=A + Close[n-1]+21*(Close[n-1]-Close[n-20])+210*(Close[n-19]-Close[n-2])+1330*(Close[n-3]-Close[n-18])+5985*(Close[n- 17]-Close[n-4])+20349*(Close[n-5]-Close[n-16])+54264*(Close[n-15]-Close[n-6])+116280*(Close[n-7]-Close[n- 14])+203490*(Close[n-13]-Close[n-8])+293930*(Close[n-9]-Close[n-12])+352716*(Close[n-11]-Close[n-10]); // Обработка предыдущих значений Line_0= A; // Значение 0 буфера на i-ом баре i--; // Расчёт индекса следующего бара }//-------------------------------------------------------------------- return; // Выход из спец. ф-ии start() }//-------------------------------------------------------------------- Ссылка на комментарий Поделиться на другие сайты Поделиться
Yeg Опубликовано 10 декабря, 2010 Жалоба Поделиться Опубликовано 10 декабря, 2010 Добавь в кодPrint("A= ",A);и в журнале увидишь10:20:12 Cena EURUSD,M5: A= 010:20:12 Cena EURUSD,M5: A= 010:20:12 Cena EURUSD,M5: A= 010:20:12 Cena EURUSD,M5: A= 010:20:12 Cena EURUSD,M5: A= 010:20:12 Cena EURUSD,M5: A= 010:20:12 Cena EURUSD,M5: A= 010:20:12 Cena EURUSD,M5: A= 010:20:12 Cena EURUSD,M5: A= 010:20:12 Cena EURUSD,M5: A= 0Это потому, что твой параметр n не чего не значит. Если в формуле его заменить на iClose[i-1]+21*(Close[i-1]-Close[i-20])... то есть берем конкретную ценуи видим, что она считает10:55:26 Cena EURUSD,M5: A= 80.352310:55:26 Cena EURUSD,M5: A= -92.880210:55:26 Cena EURUSD,M5: A= 111.425910:55:26 Cena EURUSD,M5: A= -126.414310:55:26 Cena EURUSD,M5: A= 137.671310:55:26 Cena EURUSD,M5: A= -122.822110:55:26 Cena EURUSD,M5: A= 96.666910:55:26 Cena EURUSD,M5: A= -69.882710:55:26 Cena EURUSD,M5: A= 72.985210:55:26 Cena EURUSD,M5: A= -95.742210:55:26 Cena EURUSD,M5: A= 128.7801Естественно с такими расчетами ничего выводиться не будет! А где ты взял эту формулу?Что ты хотел получить? Ссылка на комментарий Поделиться на другие сайты Поделиться
forxpvm Опубликовано 10 декабря, 2010 Жалоба Поделиться Опубликовано 10 декабря, 2010 Здравствуйте коллеги.Приходится сидеть с ребенком и процесс контроля за ценой бывает затруднителен.Не могли бы .если не трудно. скрипт сделать для такого отображения цены как на рисунке.Спасибо.Буду очень признателен.Вот результат.Вопрос такой,какая переменная у цены,чтобы поставить вместо слова Oleg? Судя по дельте в датах постов, может еще и пригодится ответ Close - Документация на MQL4Ask - Документация на MQL4 Ссылка на комментарий Поделиться на другие сайты Поделиться
sidsv3413 Опубликовано 16 декабря, 2010 Жалоба Поделиться Опубликовано 16 декабря, 2010 Добавь в кодPrint("A= ",A);и в журнале увидишь10:20:12 Cena EURUSD,M5: A= 010:20:12 Cena EURUSD,M5: A= 010:20:12 Cena EURUSD,M5: A= 010:20:12 Cena EURUSD,M5: A= 010:20:12 Cena EURUSD,M5: A= 010:20:12 Cena EURUSD,M5: A= 010:20:12 Cena EURUSD,M5: A= 010:20:12 Cena EURUSD,M5: A= 010:20:12 Cena EURUSD,M5: A= 010:20:12 Cena EURUSD,M5: A= 0Это потому, что твой параметр n не чего не значит. Если в формуле его заменить на iClose[i-1]+21*(Close[i-1]-Close[i-20])... то есть берем конкретную ценуи видим, что она считает10:55:26 Cena EURUSD,M5: A= 80.352310:55:26 Cena EURUSD,M5: A= -92.880210:55:26 Cena EURUSD,M5: A= 111.425910:55:26 Cena EURUSD,M5: A= -126.414310:55:26 Cena EURUSD,M5: A= 137.671310:55:26 Cena EURUSD,M5: A= -122.822110:55:26 Cena EURUSD,M5: A= 96.666910:55:26 Cena EURUSD,M5: A= -69.882710:55:26 Cena EURUSD,M5: A= 72.985210:55:26 Cena EURUSD,M5: A= -95.742210:55:26 Cena EURUSD,M5: A= 128.7801Естественно с такими расчетами ничего выводиться не будет! А где ты взял эту формулу?Что ты хотел получить? Я хочу сделать индикатор изменения ускорений цены, есть определенные мысли по этому поводу. Параметр n - это количество баров от текущего или расчет произвожу по предыдущим 21 барам. Можно в принципе сразу разницу в скобках поставить. Это я сделал, что бы количество исследуемых баров менять можно было. За совет спасибо. Можем насчет идеи пообщаться в личке, если хотите))) Ссылка на комментарий Поделиться на другие сайты Поделиться
sidsv3413 Опубликовано 16 декабря, 2010 Жалоба Поделиться Опубликовано 16 декабря, 2010 Естественно с такими расчетами ничего выводиться не будет! А где ты взял эту формулу?Что ты хотел получить? Я хочу сделать индикатор изменения ускорений цены, есть определенные мысли по этому поводу. Параметр n - это количество баров от текущего или расчет произвожу по предыдущим 21 барам. Можно в принципе сразу разницу в скобках поставить. Это я сделал, что бы количество исследуемых баров менять можно было. За совет спасибо. Можем насчет идеи пообщаться в личке, если хотите))) В формуле Close[n-1] и т.д про n сказал выше, а 1 - это индекс бара, т.е. 1-й после нулевого. Такой общий смысл Ссылка на комментарий Поделиться на другие сайты Поделиться
Ravenloff Опубликовано 15 февраля, 2011 Жалоба Поделиться Опубликовано 15 февраля, 2011 (изменено) Привет всем!! Вот нашел прау скриптов но т.к в программировании полный ноль то прошу что бы вы смогли довести д оума этот индикатор.Вот код, проблема в том что когда вставляю в мт4, выдает ошибку , я пытался ее исправить но как писал, в программировании 0 скаченно с сайта http://wiki.fxprogrammers.com/index.php/Nonlinear_Ehlers_Filter function Init() indicator:name("Nonlinear Ehlers Filter"); indicator:description("Nonlinear Ehlers Filter"); indicator:requiredSource(core.Bar); indicator:type(core.Indicator); indicator.parameters:addInteger("Length", "No name", "No description", 15); indicator.parameters:addColor("Color of Ehlers", "Color of Ehlers", core.rgb(255, 0, 0));end-- Indicator instance initialization routine-- Processes indicator parameters and creates output streams-- TODO: Refine the first period calculation for each of the output streams.-- TODO: Calculate all constants, create instances all subsequent indicators and load all required libraries-- Parameters blocklocal Length;local priceSource = nil;local first;local source = nil;-- Streams blocklocal Ehlers = nil;-- Routinefunction Prepare() Length = instance.parameters.Length; source = instance.source; first = source:first() + Length + 5; priceSource = instance:addInternalStream(source:first()); local name = profile:id() .. "(" .. source:name() .. ", " .. Length .. ")"; instance:name(name); Ehlers = instance:addStream("Ehlers", core.Line, name, "Ehlers", instance.parameters.Ehlers_color, first)end-- Indicator calculation routine-- TODO: Add your code for calculation output valuesfunction Update(period) priceSource[period] = (source.high[period] + source.low[period]) / 2; if period >= first and source:hasData(period) then local i = 0; local Num = 0; local SumCoef = 0; for i = 0, Length - 1 do local Coef = math.abs(priceSource[period - i] - priceSource[period - i - 5]); Num = Num + Coef * priceSource[period - i]; SumCoef = SumCoef + Coef; end Ehlers[period] = Num / SumCoef; endend это 1 код а вот еще: сайт http://forum.esignal.com/showthread.php?threadid=29610 /********************************* Provided By: eSignal (Copyright c eSignal), a division of Interactive Data Corporation. 2008. All rights reserved. This sample eSignal Formula Script (EFS) is for educational purposes only and may be modified and saved under a new file name. eSignal is not responsible for the functionality once modified. eSignal reserves the right to modify and overwrite this EFS file with each new release. Description: Ehlers Filter Version: 1.0 01/16/2009 Formula Parameters: Default: Length 15 Thickness line 2 Line Color Green Display Cursor Labels True Notes: The related article is copyrighted material. If you are not a subscriber of Stocks & Commodities, please visit <a href="http://www.traders.com." target="_blank">www.traders.com.</a> **********************************/ var fpArray = new Array(); var bInit = false; function preMain() { setPriceStudy(false); setShowCursorLabel(false); setShowTitleParameters( false ); setStudyTitle("Ehlers Filter"); setCursorLabelName("Ehlers", 0); setDefaultBarFgColor(Color.green, 0); setPlotType(PLOTTYPE_LINE, 0); setDefaultBarThickness(2, 0); askForInput(); var x=0; fpArray[x] = new FunctionParameter("LineColor", FunctionParameter.COLOR); with(fpArray[x++]){ setName("Line Color"); setDefault(Color.green); } fpArray[x] = new FunctionParameter("ViewValue", FunctionParameter.BOOLEAN); with(fpArray[x++]){ setName("Display Cursor Labels"); setDefault(true); } fpArray[x] = new FunctionParameter("Length", FunctionParameter.NUMBER); with(fpArray[x++]){ setLowerLimit(1); setDefault(15); } fpArray[x] = new FunctionParameter("Thickness", FunctionParameter.NUMBER); with(fpArray[x++]){ setName("Line Thickness"); setLowerLimit(1); setDefault(2); } } var xCoef = null; var xPrice = null; function main(Length, Thickness, LineColor, ViewValue) { var nNum = 0; var nSumCoef = 0; var nCount = 0; var nFilt = 0; if ( bInit == false ) { setDefaultBarFgColor(LineColor, 0); setDefaultBarThickness(Thickness, 0); setShowCursorLabel(ViewValue); xPrice = hl2(); xCoef = efsInternal("Calc_Coef", xPrice) bInit = true; } for (nCount = 0; nCount < Length; nCount++) { nNum += xCoef.getValue(-nCount) * xPrice.getValue(-nCount); nSumCoef += xCoef.getValue(-nCount); } if (nSumCoef != 0) { nFilt = nNum / nSumCoef; } return nFilt; } function Calc_Coef(xPrice) { var nRes = 0; nPrice = 0; nPrice = xPrice.getValue(-5); if (nPrice == null) nPrice = 0; nRes = Math.abs(xPrice.getValue(0) - nPrice); return nRes; } т.е как уже поняли , это код который надо довести до ума , что бы он стал индикатором в мт4. Изменено 15 февраля, 2011 пользователем Ravenloff Ссылка на комментарий Поделиться на другие сайты Поделиться
Yoo Опубликовано 27 февраля, 2011 Жалоба Поделиться Опубликовано 27 февраля, 2011 Доброе время суток. Нужен индикатор обычный мувинг(с параметром "Сдвиг") только строится от цены открытия дня. Спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
kov Опубликовано 4 апреля, 2011 Жалоба Поделиться Опубликовано 4 апреля, 2011 люди, а кто в курсе за 392 версию МТ4.не хочет индюк рисовать при первом запуске терминала. проблема поднималась Zhunko на http://forum.mql4.com/ru/39603дак как с этим бороться? Ссылка на комментарий Поделиться на другие сайты Поделиться
KENTstal Опубликовано 13 мая, 2011 Жалоба Поделиться Опубликовано 13 мая, 2011 Прощу прощения если не сюда пишу! Меня интересует индикатор MACD с двумя линиями как на рисунке, в мт4 другой с одной линией, подскажите пожалуйста где взять такой как на рисунке? Ссылка на комментарий Поделиться на другие сайты Поделиться
ulanrd Опубликовано 31 мая, 2011 Жалоба Поделиться Опубликовано 31 мая, 2011 Прощу прощения если не сюда пишу! Меня интересует индикатор MACD с двумя линиями как на рисунке, в мт4 другой с одной линией, подскажите пожалуйста где взять такой как на рисунке? Держи Ссылка на комментарий Поделиться на другие сайты Поделиться
ulanrd Опубликовано 31 мая, 2011 Жалоба Поделиться Опубликовано 31 мая, 2011 Прощу прощения если не сюда пишу! Меня интересует индикатор MACD с двумя линиями как на рисунке, в мт4 другой с одной линией, подскажите пожалуйста где взять такой как на рисунке? ИзвиняюсьGA ELDER COLOR BAR.rar Ссылка на комментарий Поделиться на другие сайты Поделиться
Ravenloff Опубликовано 7 июля, 2011 Жалоба Поделиться Опубликовано 7 июля, 2011 ulanrd скажи пожалуйста а можешь сделать индикатор для мт4 есть код вот онпо ссылке? http://forum.esignal.com/showthread.php?threadid=30545 индикатор очень хороший и пригодиться для торговли Ссылка на комментарий Поделиться на другие сайты Поделиться
DmD Опубликовано 17 июля, 2012 Жалоба Поделиться Опубликовано 17 июля, 2012 подскажите, как можно изменить тестер в МТ4, что бы его можно было зациклить на последнем баре (т.е. когда он отработает последний бар его не пришлось бы перезапускать и ждать когда он дойдет до последнего бара с новыми котировками, а сам автоматически перезагружался и снова отрабатывал последний бар с новыми котировками) Или подскажите возможно создание индикатора с такими условиями? Ссылка на комментарий Поделиться на другие сайты Поделиться
FNP Опубликовано 20 ноября, 2012 Жалоба Поделиться Опубликовано 20 ноября, 2012 roboPROF – это команда единомышленников, торгующих на фьючерсных площадках различных бирж и программирующих для различных торговых платформ, таких как Quik, Amibroker, Wealth-Lab и на языке С#.Подчеркнем, что мы Любители, а не «Профессионалы». Биржевая Торговля и Программирование – это наше хобби.Сайт roboprof.ru посвящен программным разработкам для авто/алго-торговли и Биржевой торговле на финансовых рынках. Cайт также познакомит Вас с основами и теорией опционной и фьючерсной торговли, интересным видео. Так же, здесь Вы найдете наши возможные открытия и многое другое.На данном сайте мы будем выкладывать как наши собственные разработки (частично бесплатно и, ХОТЯ, в большинстве случаев – БЕСПЛАТНО) так и бесплатные разработки сторонних разработчиков раскиданных на просторах Интернет, а также будем указывать ссылки на сайты платных разработок. Нами разработан по НОВОМУ индикатор Опционные уровни (OPTION LEVELS) без ежемесячных денежных трат и иные индикаторы для успешной торговли. http://roboprof.rusale@roboprof.ruSkype: robo.prof Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения