Light Style© by Fisana

Перейти к содержимому


РАММ сервис NordFx: копируй сделки лучших трейдеров форекс


NordFX

Фотография

Создание индикаторов


  • Пожалуйста, авторизуйтесь, чтобы ответить
159 ответов в этой теме

#121 Карлсон

Карлсон

    Трейдер

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 1 463 сообщений

Опубликовано 21 Август 2010 - 07:32

Здравствуйте коллеги.Приходится сидеть с ребенком и процесс контроля за ценой бывает затруднителен.Не могли бы .если не трудно. скрипт сделать для такого отображения цены как на рисунке.
Спасибо.Буду очень признателен.
Размещенное изображение

Приветы.Сразу скажу,что не программист.Вот что получилось.
Код:
//+------------------------------------------------------------------+
//| 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?
Размещенное изображение





С уважением,Олег.
Подготовительный фаультет
Деятельность факультета основана на взаимопомощи учащихся в изучении ТС МФ,
последовательном самостоятельном рассмотрении имеющегося на форуме материала,
обсуждении торговых ситуаций на начальном этапе.
Программирование MQL5

#122 sidsv3413

sidsv3413

    живет тут

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 282 сообщений

Опубликовано 01 Декабрь 2010 - 04:46

Здравствуйте, пытаюсь прописать индикатор, но не получается - маловато опыта, только пытаюсь программирование осваивать.
Смысл в том, что мне нужно обработать от текущего бара предыдущие 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[i]= A; // Значение 0 буфера на i-ом баре

i--; // Расчёт индекса следующего бара
}
//--------------------------------------------------------------------
return; // Выход из спец. ф-ии start()
}
//--------------------------------------------------------------------
С уважением, Сергей.

#123 Yeg

Yeg

    записался

  • Пользователи ST test (off)
  • PipPip
  • 31 сообщений

Опубликовано 10 Декабрь 2010 - 08:03

Добавь в код
Print("A= ",A);
и в журнале увидишь
10:20:12 Cena EURUSD,M5: A= 0
10:20:12 Cena EURUSD,M5: A= 0
10:20:12 Cena EURUSD,M5: A= 0
10:20:12 Cena EURUSD,M5: A= 0
10:20:12 Cena EURUSD,M5: A= 0
10:20:12 Cena EURUSD,M5: A= 0
10:20:12 Cena EURUSD,M5: A= 0
10:20:12 Cena EURUSD,M5: A= 0
10:20:12 Cena EURUSD,M5: A= 0
10:20:12 Cena EURUSD,M5: A= 0
Это потому, что твой параметр n не чего не значит. Если в формуле его заменить на i
Close[i-1]+21*(Close[i-1]-Close[i-20])... то есть берем конкретную цену
и видим, что она считает
10:55:26 Cena EURUSD,M5: A= 80.3523
10:55:26 Cena EURUSD,M5: A= -92.8802
10:55:26 Cena EURUSD,M5: A= 111.4259
10:55:26 Cena EURUSD,M5: A= -126.4143
10:55:26 Cena EURUSD,M5: A= 137.6713
10:55:26 Cena EURUSD,M5: A= -122.8221
10:55:26 Cena EURUSD,M5: A= 96.6669
10:55:26 Cena EURUSD,M5: A= -69.8827
10:55:26 Cena EURUSD,M5: A= 72.9852
10:55:26 Cena EURUSD,M5: A= -95.7422
10:55:26 Cena EURUSD,M5: A= 128.7801
Естественно с такими расчетами ничего выводиться не будет! А где ты взял эту формулу?
Что ты хотел получить?
С уважением Егор.

#124 forxpvm

forxpvm

    живет тут

  • Пользователь
  • PipPipPipPipPip
  • 119 сообщений

Опубликовано 10 Декабрь 2010 - 04:31


Здравствуйте коллеги.Приходится сидеть с ребенком и процесс контроля за ценой бывает затруднителен.Не могли бы .если не трудно. скрипт сделать для такого отображения цены как на рисунке.
Спасибо.Буду очень признателен.
Вот результат.Вопрос такой,какая переменная у цены,чтобы поставить вместо слова Oleg?

Судя по дельте в датах постов, может еще и пригодится ответ :biggrin:
Close - Документация на MQL4
Ask - Документация на MQL4

#125 sidsv3413

sidsv3413

    живет тут

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 282 сообщений

Опубликовано 16 Декабрь 2010 - 01:57

Добавь в код
Print("A= ",A);
и в журнале увидишь
10:20:12 Cena EURUSD,M5: A= 0
10:20:12 Cena EURUSD,M5: A= 0
10:20:12 Cena EURUSD,M5: A= 0
10:20:12 Cena EURUSD,M5: A= 0
10:20:12 Cena EURUSD,M5: A= 0
10:20:12 Cena EURUSD,M5: A= 0
10:20:12 Cena EURUSD,M5: A= 0
10:20:12 Cena EURUSD,M5: A= 0
10:20:12 Cena EURUSD,M5: A= 0
10:20:12 Cena EURUSD,M5: A= 0
Это потому, что твой параметр n не чего не значит. Если в формуле его заменить на i
Close[i-1]+21*(Close[i-1]-Close[i-20])... то есть берем конкретную цену
и видим, что она считает
10:55:26 Cena EURUSD,M5: A= 80.3523
10:55:26 Cena EURUSD,M5: A= -92.8802
10:55:26 Cena EURUSD,M5: A= 111.4259
10:55:26 Cena EURUSD,M5: A= -126.4143
10:55:26 Cena EURUSD,M5: A= 137.6713
10:55:26 Cena EURUSD,M5: A= -122.8221
10:55:26 Cena EURUSD,M5: A= 96.6669
10:55:26 Cena EURUSD,M5: A= -69.8827
10:55:26 Cena EURUSD,M5: A= 72.9852
10:55:26 Cena EURUSD,M5: A= -95.7422
10:55:26 Cena EURUSD,M5: A= 128.7801
Естественно с такими расчетами ничего выводиться не будет! А где ты взял эту формулу?
Что ты хотел получить?


Я хочу сделать индикатор изменения ускорений цены, есть определенные мысли по этому поводу. Параметр n - это количество баров от текущего или расчет произвожу по предыдущим 21 барам. Можно в принципе сразу разницу в скобках поставить. Это я сделал, что бы количество исследуемых баров менять можно было. За совет спасибо. Можем насчет идеи пообщаться в личке, если хотите)))
С уважением, Сергей.

#126 sidsv3413

sidsv3413

    живет тут

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 282 сообщений

Опубликовано 16 Декабрь 2010 - 06:43



Естественно с такими расчетами ничего выводиться не будет! А где ты взял эту формулу?
Что ты хотел получить?


Я хочу сделать индикатор изменения ускорений цены, есть определенные мысли по этому поводу. Параметр n - это количество баров от текущего или расчет произвожу по предыдущим 21 барам. Можно в принципе сразу разницу в скобках поставить. Это я сделал, что бы количество исследуемых баров менять можно было. За совет спасибо. Можем насчет идеи пообщаться в личке, если хотите)))


В формуле Close[n-1] и т.д про n сказал выше, а 1 - это индекс бара, т.е. 1-й после нулевого. Такой общий смысл
С уважением, Сергей.

#127 Ravenloff

Ravenloff

    живет тут

  • Пользователь
  • PipPipPipPipPip
  • 138 сообщений

Опубликовано 15 Февраль 2011 - 09:19

Привет всем!! Вот нашел прау скриптов но т.к в программировании полный ноль то прошу что бы вы смогли довести д оума этот индикатор.
Вот код, проблема в том что когда вставляю в мт4, выдает ошибку , я пытался ее исправить но как писал, в программировании 0

скаченно с сайта http://wiki.fxprogra...r_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 block
local Length;
local priceSource = nil;
local first;
local source = nil;
-- Streams block
local Ehlers = nil;
-- Routine
function 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 values
function 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;
end
end



это 1 код а вот еще:

сайт http://forum.esignal...?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.

Сообщение изменено: Ravenloff, 15 Февраль 2011 - 09:20 .


#128 Yoo

Yoo

    пробегал

  • Пользователи
  • Pip
  • 2 сообщений

Опубликовано 27 Февраль 2011 - 09:55

Доброе время суток. Нужен индикатор обычный мувинг(с параметром "Сдвиг") только строится от цены открытия дня. Спасибо

#129 kov

kov

    прописался

  • Пользователи ST test (off)
  • PipPipPip
  • 88 сообщений

Опубликовано 04 Апрель 2011 - 01:18

люди, а кто в курсе за 392 версию МТ4.
не хочет индюк рисовать при первом запуске терминала.
проблема поднималась Zhunko на http://forum.mql4.com/ru/39603
дак как с этим бороться?
Skype-kov1kov
http://www.f-irma.ru

#130 KENTstal

KENTstal

    записался

  • Пользователи ST test (off)
  • PipPip
  • 29 сообщений

Опубликовано 13 Май 2011 - 12:16

Прощу прощения если не сюда пишу! Меня интересует индикатор MACD с двумя линиями как на рисунке, в мт4 другой с одной линией, подскажите пожалуйста где взять такой как на рисунке?

Вложенные превью

  • macd.jpg


#131 ulanrd

ulanrd

    прописался

  • Пользователи ST test (off)
  • PipPipPip
  • 59 сообщений

Опубликовано 31 Май 2011 - 06:03

Прощу прощения если не сюда пишу! Меня интересует индикатор MACD с двумя линиями как на рисунке, в мт4 другой с одной линией, подскажите пожалуйста где взять такой как на рисунке?


Держи
Паду ли я стрелой пронзенный?
Иль мимо пролетит она???
С уважением, Руслан.

#132 ulanrd

ulanrd

    прописался

  • Пользователи ST test (off)
  • PipPipPip
  • 59 сообщений

Опубликовано 31 Май 2011 - 06:15

Прощу прощения если не сюда пишу! Меня интересует индикатор MACD с двумя линиями как на рисунке, в мт4 другой с одной линией, подскажите пожалуйста где взять такой как на рисунке?


Извиняюсь

Вложенные файлы


Паду ли я стрелой пронзенный?
Иль мимо пролетит она???
С уважением, Руслан.

#133 Ravenloff

Ravenloff

    живет тут

  • Пользователь
  • PipPipPipPipPip
  • 138 сообщений

Опубликовано 07 Июль 2011 - 12:26

ulanrd скажи пожалуйста а можешь сделать индикатор для мт4 есть код вот он
по ссылке?

http://forum.esignal...?threadid=30545 индикатор очень хороший и пригодиться для торговли

#134 DmD

DmD

    записался

  • Пользователи
  • PipPip
  • 19 сообщений

Опубликовано 17 Июль 2012 - 06:35

подскажите, как можно изменить тестер в МТ4, что бы его можно было зациклить на последнем баре (т.е. когда он отработает последний бар его не пришлось бы перезапускать и ждать когда он дойдет до последнего бара с новыми котировками, а сам автоматически перезагружался и снова отрабатывал последний бар с новыми котировками) Или подскажите возможно создание индикатора с такими условиями?

#135 FNP

FNP

    записался

  • Пользователи
  • PipPip
  • 20 сообщений

Опубликовано 20 Ноябрь 2012 - 01:21

roboPROF – это команда единомышленников, торгующих на фьючерсных площадках различных бирж и программирующих для различных торговых платформ, таких как Quik, Amibroker, Wealth-Lab и на языке С#.
Подчеркнем, что мы Любители, а не «Профессионалы». Биржевая Торговля и Программирование – это наше хобби.
Сайт roboprof.ru посвящен программным разработкам для авто/алго-торговли и Биржевой торговле на финансовых рынках. Cайт также познакомит Вас с основами и теорией опционной и фьючерсной торговли, интересным видео. Так же, здесь Вы найдете наши возможные открытия и многое другое.
На данном сайте мы будем выкладывать как наши собственные разработки (частично бесплатно и, ХОТЯ, в большинстве случаев – БЕСПЛАТНО) так и бесплатные разработки сторонних разработчиков раскиданных на просторах Интернет, а также будем указывать ссылки на сайты платных разработок.

Нами разработан по НОВОМУ индикатор Опционные уровни (OPTION LEVELS) без ежемесячных денежных трат и иные индикаторы для успешной торговли.

http://roboprof.ru
sale@roboprof.ru
Skype: robo.prof




Посетителей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных пользователей

Рейтинг брокеров форекс: кто лидер, кто аутсайдер и почему?




Masterforex-V NordFX

Rambler's Top100

Принимаем Z-Payment