АвторСообщение
Anatoliy



Сообщение: 2
Зарегистрирован: 13.07.14
Репутация: 0
ссылка на сообщение  Отправлено: 21.07.14 21:22. Заголовок: Я новичок.


Пишу пользовательский индикатор на основе пересечение уровни 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);
}

И в результатах индикатор вообще не работает.
Как его исправит?



Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 All [только новые]


Balbesik



Сообщение: 203
Зарегистрирован: 13.03.13
Репутация: -1
ссылка на сообщение  Отправлено: 20.03.15 18:41. Заголовок: Лучше бы ничего не п..


Лучше бы ничего не писал.
Опять "слетел".

Ну теперь я уже не знаю, что может быть еще с индикатором.
Блокирую все Биды, Аски и их производные, если опять "слет",
придется отказываться от Тикколлектора.
Как есть.



Спасибо: 0 
Профиль
Scriptong





Сообщение: 1380
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 22.03.15 15:31. Заголовок: Balbesik пишет: Опя..


Balbesik пишет:

 цитата:
Опять "слетел".


К сожалению, по этому рисунку я не могу понять, в чем заключается "слет". Поясни хотя бы в двух словах. Также приложи пожалуйста настройки TicksCollector, с которыми у тебя проблема, и что записано в журнале экспертов (может, есть какие-то ошибки).

Спасибо: 0 
Профиль
Balbesik



Сообщение: 205
Зарегистрирован: 13.03.13
Репутация: -1
ссылка на сообщение  Отправлено: 23.03.15 00:09. Заголовок: Scriptong пишет: К ..


Scriptong пишет:

 цитата:
К сожалению, по этому рисунку я не могу понять, в чем заключается "слет". Поясни хотя бы в двух словах. Также приложи пожалуйста настройки TicksCollector, с которыми у тебя проблема, и что записано в журнале экспертов (может, есть какие-то ошибки).



"слет" – бары начинают рисоваться, как штрихи (в конце графика («0» - бар)).
Объем бара = 1 на всех штриховых барах.

Подобную картинку я выше выложил – Отправлено: 18.03.15 21:06 .

Если снять индикатор с графика и повторно установить, то график вообще перестает строиться.
Тут, да, чтобы запустить необходимо удалить фаил.tks с раннее собранными тиками.

В журнале экспертов ничего не наблюдал.

На этой неделе, в первую очередь, хочу проверить возможное влияние входных сигналов Бид и Аск (даже если по логике и быть не может).

Связно со следующим – как-то у меня вилы и цели строились на базе ЗигЗага Candida (HZZ) на нем в один день недели, точно в одно и тоже время, происходило перестроение и вил и целей. При этом я проверял по двум «кухням» Альпари и FXCM так вот по одной из них это происходило в воскресенье, а у второй почему-то в четверг и всегда по времени,
т.е. имело не случайный характер.

Они «переписывали» историю, заявляя, что убирают нерыночные котировки –
все нам «на благо».
Т.е. в этот момент может быть, что угодно.

Сейчас хочу исключить этот момент (если это имеет место быть).





Спасибо: 0 
Профиль
Balbesik



Сообщение: 207
Зарегистрирован: 13.03.13
Репутация: -1
ссылка на сообщение  Отправлено: 23.03.15 13:40. Заголовок: В дополнение - пого..


В дополнение -

поговорил с ребятами, которые занимаются фондой.
Они не знают МТ4 и форекс.
Но проверку в части Бид и Аск делали.
Получилось на 200 000 тиков Бид=Аск порядка 50 случаев,
Аск - Бид = (отрицательная величина) 2-3 случая.

Если Аск - Бид = минус, то однозначно относят к технологическому сбою,
то Аск = Бид помимо технологического сбоя, имеет место быть и
может быть значимо при комплексной оценки.

Возможно это что-то даст.

И мой старый вопрос - может ли на форексе, например Бид = EMPTY_VALUE.
Или другими словами MarketInfo принимать пустое значение.

Спасибо: 0 
Профиль
Balbesik



Сообщение: 208
Зарегистрирован: 13.03.13
Репутация: -1
ссылка на сообщение  Отправлено: 24.03.15 15:39. Заголовок: По возможности исклю..


По возможности исключил некорректные данные по Бид и Аск.
Не помогло - "слет".
Пока более версии нет.
До этого, правда не особо проверял и сравнивал с работой равнообъемного,
там "слетов" не было, т.е. первое и остается - цена.
Я не знаю структуру построения Тикколлектора.
Принцип - "обезьяны, которая трясет" не прошел.

Более "в чужом" разбираться смысла не вижу (можно это делать до бесконечности,
особенно, когда автору это особо и не надо - один и тот же вопрос 10 раз).
Все.
На Тикколлекторе - равновысокие (у меня не работают).

"Индикатор и советник распространяются "как есть". Автор не несет ответственности за прямые или
косвенные убытки, понесенные трейдерами вследствие использования программ." -
этим все сказано никаких обид.

P.S.

Вопросы соответственно все отпадают.

Спасибо: 0 
Профиль
Scriptong





Сообщение: 1396
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 24.03.15 19:56. Заголовок: Balbesik пишет: Воп..


Balbesik пишет:

 цитата:
Вопросы соответственно все отпадают.


ОК. Значит, чинить TicksCollector будем с другим его пользователем, у которого хватит заинтересованности довести дело до конца.

Спасибо: 0 
Профиль
Balbesik



Сообщение: 209
Зарегистрирован: 13.03.13
Репутация: -1
ссылка на сообщение  Отправлено: 27.03.15 16:46. Заголовок: Scriptong пишет: ОК..


Scriptong пишет:

 цитата:
ОК. Значит, чинить TicksCollector будем с другим его пользователем, у которого хватит заинтересованности довести дело до конца.



Игорь!

Где я тебя оскорбил или задел?
Я выложил - состояние дел (без разработчика - а это бред).

У меня с тобой были нормальные отношения (как мне казалось).
Что-то я не заметил "...заинтересованности..." на ветке.
Но, так или иначе " Как та обезьяна, которая трясет дерево",
кажется я проблему Тикколлектора решил.
Обидно, что ты, как автор, иногда устраняешься.
"Гоняю" следующию неделю и выложу.
Кстати ты опять (как в советнике) деление на "0" в библиотеке пропустил -
считаю это "не при делах" - у меня есть основание считать это мелочью.

Спасибо: 0 
Профиль
Scriptong





Сообщение: 1412
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 29.03.15 15:32. Заголовок: Balbesik пишет: Где..


Balbesik пишет:

 цитата:
Где я тебя оскорбил или задел?


Ты меня ничем не обидел. Точно также со своей стороны констатировал факт - у тебя не хватает терпения довести дело до конца. Ты не понимаешь, что обнаружение некоторых ошибок является достаточно трудной задачей или даже невыполнимой. Предоставив несколько фактов, которые очень плохо описывают положение дел, ты считаешь, что я через пару дней должен выложить исправленное решение. В то же время я еще даже в суть проблемы не успел вникнуть. Но ты уже "устал".

Balbesik пишет:

 цитата:
Кстати ты опять (как в советнике) деление на "0" в библиотеке пропустил -


Это серьезная ошибка. Можешь указать где (какая библиотека)?

Спасибо: 0 
Профиль
Balbesik



Сообщение: 210
Зарегистрирован: 13.03.13
Репутация: -1
ссылка на сообщение  Отправлено: 30.03.15 19:05. Заголовок: Scriptong пишет: Эт..


Scriptong пишет:

 цитата:
Это серьезная ошибка. Можешь указать где (какая библиотека)?



Привет Игорь!

Заставил чуть раньше ответить.

Вообще-то библиотека (вынесенная функция) у тебя одна (если у тебя более, чем одна, это интересно,
т.к. проблема ПАМЯТИ путем оптимизации, в части Тикколлектора, меня не убедила ).

bool NonStandartTFChart::IsNewBarByConvertType(datetime &time) const
{
switch (m_convertType)
{
case CONVERT_TYPE_TF: if (time < m_rates.time + m_chartProperty)
return false;

if (m_chartProperty != 0) // это я вставил
{
time = time / m_chartProperty * m_chartProperty;
return true;
}
Любое деление я воспринимаю, как потенциальная угроза (даже при страховке - "советник не работает").
Меня мало беспокоит, что при инициализации все нормально (опыт советника).

Вопрос другой – ты «устранился» - а именно не даёшь версии подлежащие проверки
(я понимаю - у тебя самого не хватает времени и на все не хватит).

Я на пример не понимаю –
bool SaveRegularTick()
{
// далее моя вставка - и Аск можно исключить - "масло масленое"
double Bd1 = 0.0;
double Ak1 = 0.0;

if (
NormalizeDouble(Bid ,6) == NormalizeDouble(Ask ,6)
||
NormalizeDouble(Ask ,6) - NormalizeDouble(Bid ,6) < 0
||
Bid == EMPTY_VALUE
||
NormalizeDouble(Bid ,6) == 0
||
Ask == EMPTY_VALUE
||
NormalizeDouble(Ask ,6) == 0
)
{
Bd1 = Bid;
Ak1 = Ask;
Print(" Bd1 ",Bd1);
Print(" Ak1 ",Ak1);
//return false; принт выше это контроль «для себе»

return IsFileFlush(false);
}
Почему для bool, когда вроде бы достаточно return false; не достаточно и идет «слет» -
Журнал – История Бар -2 ошибки. А return IsFileFlush(false); - стоит 2 ю неделю?
Я не зная твоего алгоритма, методом проб, не знаю, где искать и это раздражает –
не понятно – А тебе этот индикатор (в свободном доступе) нужен?.


Спасибо: 0 
Профиль
Balbesik



Сообщение: 212
Зарегистрирован: 13.03.13
Репутация: -1
ссылка на сообщение  Отправлено: 30.03.15 20:03. Заголовок: "...Например, с..


"...Например, стратегия торговли по индикатору Moving Average чаще всего основана на пересечении двух средних скользящих с разным периодом или разным сдвигом, различные осцилляторы (MACD, Stochastic, RSI, RVI и т. д.) дают сигналы при пересечении своих главных и сигнальных линий или (в случае отсутствия сигнальной линии) при пересечении заданных пользователем уровней..."

Игорь!

Я один раз на "Красном форуме" на 25-30 листах ветки прочитал, что такое Машка (я понял, как это серьезно и сколько надо знать)
Но понял я еще и одно - нет корректных входных данных - нечего делать.
Это то, чего я добиваюсь.

Спасибо: 0 
Профиль
Scriptong





Сообщение: 1422
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 31.03.15 17:41. Заголовок: Balbesik пишет: Люб..


Balbesik пишет:

 цитата:
Любое деление я воспринимаю, как потенциальная угроза (даже при страховке - "советник не работает").


По сути - посыл правильный, т. е. нужно подозрительно относится к любой операции деления, которая осталась без проверки. Но в данном проверка есть. Речь идет о неизменяемом параметре - члене класса. К моменту его инициализации все необходимые проверки уже проведены:

 цитата:
if (param < 1)
{
Alert(name, ": значение параметра ", paramName, " должно быть натуральным числом. Индикатор отключен.");
return false;
}


Это часть функции IsThreeParametersCorrect, расположенной в файле TicksCollector_AD.mq4 (строки 157 - 177). Проследи, каким образом инициализируется этот член класса - это производная от входного параметров i_secondsPerBar, i_pointsPerBar и i_ticksPerBar. Попробуй задать их значение, равное нулю, и посмотри результат запуска индикатора.

Balbesik пишет:

 цитата:
Почему для bool, когда вроде бы достаточно return false; не достаточно и идет «слет» -


Потому что bool это не только false, но и true. Если функция SaveRegularTick вернет false, то такой результат расценивается как ошибка.

Balbesik пишет:

 цитата:
не понятно – А тебе этот индикатор (в свободном доступе) нужен?.


Зачем он мне в свободном доступе? Это ведь моя разработка, которая всегда со мной. Индикатор нужен не мне, а другим людям (наверное). Потому и выложил его.

Спасибо: 0 
Профиль
Scriptong





Сообщение: 1423
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 31.03.15 17:43. Заголовок: Balbesik пишет: Иго..


Balbesik пишет:

 цитата:
Игорь!

Я один раз на "Красном форуме" на 25-30 листах ветки прочитал, что такое Машка (я понял, как это серьезно и сколько надо знать)
Но понял я еще и одно - нет корректных входных данных - нечего делать.
Это то, чего я добиваюсь.


Вот пример твоей концентрации - и часа не прошло, а ты уже с одной задачи перепрыгнул на другую. Как с тобой вести разговор, если для решения поднимаемых задач нужны не просто часы, а недели, месяцы, а то и годы. Но ты даже часа не можешь подождать.

Спасибо: 0 
Профиль
Balbesik



Сообщение: 213
Зарегистрирован: 13.03.13
Репутация: -1
ссылка на сообщение  Отправлено: 01.04.15 13:41. Заголовок: Scriptong пишет: К ..


Scriptong пишет:

 цитата:
К моменту его инициализации все необходимые проверки уже проведены



Как раз об этом я и писал - "..даже при страховке - "советник не работает"...".

Scriptong пишет:

 цитата:
Это ведь моя разработка



Я как раз об этом - не первый раз уже "обходиться" вопрос ПАМЯТИ.
В выложенном варианте показана возможность!
Вообще-то , что это возможно известно!

Игорь!

Походы разные - практика и возможности.
Я не владея программированием знаю, что "что-то можно",
но это не значит, что лично "я" смогу сделать

Остальное в конце недели - если будут основания.

Спасибо: 0 
Профиль
Scriptong





Сообщение: 1437
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 01.04.15 14:55. Заголовок: Balbesik пишет: Как..


Balbesik пишет:

 цитата:
Как раз об этом я и писал - "..даже при страховке - "советник не работает"...".


Опять нет конкретики:
1. Какой советник не работает? (контекст разговора - ИНДИКАТОР TicksCollector).
2. Какая связь между ошибкой деления на ноль и не работой советника.
3. В чем выражается неработоспособность советника?

Balbesik пишет:

 цитата:
Я как раз об этом - не первый раз уже "обходиться" вопрос ПАМЯТИ.


Что там с памятью?

Спасибо: 0 
Профиль
Balbesik



Сообщение: 214
Зарегистрирован: 13.03.13
Репутация: -1
ссылка на сообщение  Отправлено: 01.04.15 15:44. Заголовок: Scriptong пишет: ..




Scriptong пишет:

 цитата:
1. Какой советник не работает? (контекст разговора - ИНДИКАТОР TicksCollector).


Я пытался передать суть, а не орфографию.
Естественно речь щла о индикаторе.

Scriptong пишет:

 цитата:
Что там с памятью?



У меня на равновысоких более 5 инструментов Тикколлекор
не "справляется" (а у тебя под сотню работает - в результате оптимизации?).

Но это уже не вопрос.

С момента опубликования Тикколлекора у меня он "слетал" (на разных компах).
Причиной могли быть только входные параметры (тогда на мои взгляд).
Их некорректность я попытался "исключить".
Если раннее "слет" шел в течении 1-2 дней, то сейчас простояло 1.5 недели и "слетел".
Т.е. мои правки - это не решение.
У меня Тикколлекор не работает и причину я найти не могу (я не программист).
Т.к. под него было много "заточено" было жалко затраченного времени.
Вынужден от него отказываться, т.к. у тебя, Игорь, это не повторяется и причину ты не знаешь,
а мне самому этим заниматься можно до бесконечности (остается одно решение - отказываться).

"0" - "слет"


Журнал


1 минута на "быстром" движении


Синбар (стоит) -


Оказалось и до конца недели ждать не надо.



Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  2 час. Хитов сегодня: 4
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет