Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
mandor знатный пермяк

Зарегистрирован: 19.09.2005 Сообщения: 406
|
Добавлено: Вт Окт 04, 2005 4:03 am Заголовок сообщения: Тиковый индикатор \"Крестики-Нолики\" |
цитата |
|
Решил поделиться с Вами моим индикатором Крестики-Нолики (Point & Figure) для MetaTrder 3. Чтобы получить возможность пользоваться этим индикатором, поместите файлы "Ticker Point & Figure.mlq" и "Ticker Point & Figure.exp" в папку experts\indikators. Всем желающим вышлю файлы по почте.
Особенность программы в том, что цены сравниваются с некоторым оклонением от точного значения, поскольку выяснено в ходе эксплуатации индикаторов, что цена Bid может иметь небольшие отклонения от сетки цен, кратных Point (в следующем разряде). _________________ [color=indigo:82edf1fa85]По настоящему человек раскрывается только на операционном столе (Херург).[/color:82edf1fa85] |
|
Вернуться к началу |
|
mandor знатный пермяк

Зарегистрирован: 19.09.2005 Сообщения: 406
|
Добавлено: Вт Окт 04, 2005 4:04 am Заголовок сообщения: |
цитата |
|
Исходный текст программы:
/*[[
Name := Point & Figure for Ticker
Author := Copyright © 2003-2005, Mandor
Link := mandor@mail.ru
Notes := Обрабатывает каждый тик цены Bid
Notes := Рисует график Point & Figure
Update on every tick := Yes
Separate Window := YES
First Color := Red
First Draw Type := Symbol
First Symbol := 159
Use Second Data := Yes
Second Color := Blue
Second Draw Type := Symbol
Second Symbol := 250
]]*/
Inputs : Turn( ;
Variables : nInit(0),nBars(0),nTurn(0);
Variables : nTick(0),nBid(0);
Variables : nValue(0),nCounter(0),nCounter2(0),nEndBar(0);
Variables : nVolume(0),nMaxVolume(2000);
Arrays : nPrice[2000](0);
Variables : nLengh(0),nMaxLengh(100);
Arrays : nDir[100](0),nMax[100](0),nMin[100](0); _________________ [color=indigo:82edf1fa85]По настоящему человек раскрывается только на операционном столе (Херург).[/color:82edf1fa85] |
|
Вернуться к началу |
|
mandor знатный пермяк

Зарегистрирован: 19.09.2005 Сообщения: 406
|
Добавлено: Вт Окт 04, 2005 4:05 am Заголовок сообщения: |
цитата |
|
SetLoopCount(0);
// Поменялась переменная Turn
If nTurn<>Turn Then Begin
nTurn=Turn;
// Очистка массивов
nLengh=0;
For nCounter=1 To nMaxLengh Begin
nDir[nCounter]=0;
nMax[nCounter]=0;
nMin[nCounter]=0;
End;
// Очистка графика
For nCounter=0 To nBars-1 Begin
SetIndexValue(nCounter,0);
SetIndexValue2(nCounter,0);
End;
End;
// Нарисовался новый бар
// Сместить график на 1 бар вправо
If nBars<Bars Then Begin
nBars=Bars;
For nCounter=0 To Bars-2 Begin
nValue=GetIndexValue(nCounter+1);
SetIndexValue(nCounter,nValue);
nValue=GetIndexValue2(nCounter+1);
SetIndexValue2(nCounter,nValue);
End;
// Очистка следов
SetIndexValue(Bars-1,0);
SetIndexValue2(Bars-1,0);
End;
// Установка начальных значений
If nInit=0 Then Begin
nInit=1;
// Очистка массивов
For nCounter=1 To nMaxLengh Begin
nDir[nCounter]=0;
nMax[nCounter]=0;
nMin[nCounter]=0;
End;
// Очистка графика
For nCounter=0 To Bars-1 Begin
SetIndexValue(nCounter,0);
SetIndexValue2(nCounter,0);
End;
nBars=Bars;
nBid=Bid;
nTick=1;
nVolume=1;
nPrice[1]=nBid;
nLengh=1;
nDir[1]=0;
nMax[1]=nBid;
nMin[1]=nBid;
SetIndexValue(0,nBid);
SetIndexValue2(0,0);
Exit;
End;
// Новая цена
If nBid=Bid Then Begin
Exit; // чужой тик
End;
nTick=nTick+1;
nBid=Bid;
// Сдвиг данных и запись новой цены
nVolume=nVolume+1;
If nVolume>nMaxVolume Then nVolume=nMaxVolume;
For nCounter=nVolume DownTo 2 Begin
nPrice[nCounter]=nPrice[nCounter-1];
End;
nPrice[1]=nBid; _________________ [color=indigo:82edf1fa85]По настоящему человек раскрывается только на операционном столе (Херург).[/color:82edf1fa85] |
|
Вернуться к началу |
|
mandor знатный пермяк

Зарегистрирован: 19.09.2005 Сообщения: 406
|
Добавлено: Вт Окт 04, 2005 4:06 am Заголовок сообщения: |
цитата |
|
// Формирование графика Point & Figure из массива nPrice
nLengh=1;
nDir[1]=1;
nMax[1]=nPrice[nVolume];
nMin[1]=nPrice[nVolume];
For nCounter=nVolume-1 DownTo 1 Begin
nValue=nPrice[nCounter];
// Обновление столбца 1
// Сдвиг верней границы
// Сдвиг нижней границы
If nValue>nMax[1] Then nMax[1]=nValue;
If nValue<nMin[1] Then nMin[1]=nValue;
// Был рост цен
If nDir[1]>=0 Then Begin
// Разница между максимальной ценой и текущей не менее поворотного цисла
// Поворот - смена роста цен на падение
If nMax[1]-nValue>(Turn-0.5)*Point Then Begin
// Сдвиг данных
nLengh=nLengh+1;
If nLengh>=nMaxLengh Then nLengh=nMaxLengh;
For nCounter2=nLengh DownTo 2 Begin
nDir[nCounter2]=nDir[nCounter2-1];
nMax[nCounter2]=nMax[nCounter2-1];
nMin[nCounter2]=nMin[nCounter2-1];
End;
// Новый столбец
nDir[1]=-1;
nMax[1]=nMax[2];
nMin[1]=nValue;
End;
// Было падение цен
End Else Begin
// Разница между текущей ценой и минимальной не менее поворотного цисла
// Поворот - смена падения цен на рост
If nValue-nMin[1]>(Turn-0.5)*Point Then Begin
// Сдвиг данных
nLengh=nLengh+1;
If nLengh>=nMaxLengh Then nLengh=nMaxLengh;
For nCounter2=nLengh DownTo 2 Begin
nDir[nCounter2]=nDir[nCounter2-1];
nMax[nCounter2]=nMax[nCounter2-1];
nMin[nCounter2]=nMin[nCounter2-1];
End;
// Новый столбец
nDir[1]=1;
nMax[1]=nValue;
nMin[1]=nMin[2];
End;
End;
End;
// График
If nDir[1]>=0 Then Begin
SetIndexValue(0,nBid);
SetIndexValue2(0,0);
End Else Begin
SetIndexValue(0,0);
SetIndexValue2(0,nBid);
End;
nCounter2=1;
For nCounter=1 To nLengh Begin
If nCounter2>Bars-1 Then Break;
If nDir[nCounter]>=0 Then Begin
nValue=nMax[nCounter];
While 1=1 Begin
SetIndexValue(nCounter2,nValue);
SetIndexValue2(nCounter2,0);
nCounter2=nCounter2+1;
nValue=nValue-Point;
If nCounter2>Bars-1 Then Break;
If nValue<nMin[nCounter]+0.5*Point Then Break;
End;
End Else Begin
nValue=nMin[nCounter];
While 1=1 Begin
SetIndexValue(nCounter2,0);
SetIndexValue2(nCounter2,nValue);
nCounter2=nCounter2+1;
nValue=nValue+Point;
If nCounter2>Bars-1 Then Break;
If nValue>nMax[nCounter]-0.5*Point Then Break;
End;
End;
End; _________________ [color=indigo:82edf1fa85]По настоящему человек раскрывается только на операционном столе (Херург).[/color:82edf1fa85] |
|
Вернуться к началу |
|
mandor знатный пермяк

Зарегистрирован: 19.09.2005 Сообщения: 406
|
Добавлено: Вт Окт 04, 2005 4:10 am Заголовок сообщения: |
цитата |
|
Требуется накопить несколько десятков тиков, чтобы стала получаться приемлимая картинка.
Индикатор можно перевести в формат MQL4.
Как нибудь возьмусь.
Чтобы от индикатора был толк, нужно знать техники использования этого индикатора.
Всё как обычно. _________________ [color=indigo:82edf1fa85]По настоящему человек раскрывается только на операционном столе (Херург).[/color:82edf1fa85] |
|
Вернуться к началу |
|
Strange Студент
Зарегистрирован: 25.08.2004 Сообщения: 21
|
Добавлено: Чт Ноя 03, 2005 8:10 am Заголовок сообщения: |
цитата |
|
Мда-а-аб людям халяву предлагают и то спасибо не услышишь...
Слушай Mandor. сотри код а я преложу за плату - железно желающие будутю
А пока спасибо то имени всех любителей кодов на халяву! |
|
Вернуться к началу |
|
mandor знатный пермяк

Зарегистрирован: 19.09.2005 Сообщения: 406
|
Добавлено: Пт Ноя 04, 2005 1:56 am Заголовок сообщения: |
цитата |
|
Способ истользования этого идикатора следующий.
Сигнал на покупку:
Последний столбик графика вниз.
Максимум последнего столбика вверх выше максимума предпоследнего столбика вверх.
Устанавливаем отложенный ордер на покупку по максимуму последнего столбика вверх.
Сигнал на продажу:
Последний столбик графика вверх.
Минимум последнего столбика вниз ниже минимума предпоследнего столбика вниз.
Устанавливаем отложенный ордер на продажу по минимуму последнего столбика вниз. _________________ [color=indigo:82edf1fa85]По настоящему человек раскрывается только на операционном столе (Херург).[/color:82edf1fa85] |
|
Вернуться к началу |
|
mandor знатный пермяк

Зарегистрирован: 19.09.2005 Сообщения: 406
|
Добавлено: Пт Ноя 04, 2005 2:10 am Заголовок сообщения: |
цитата |
|
Текст индикатора тут приведён в редакции 2003 года. В более современной редакции есть некоторые изменения, связанные с оптимизацией вычислений. В остальном, ничего не поменялось.
Приведённый выше способ использования индикатора особенно полезен, если надо удачно войти по тренду. Т.е., если уже мы определились с направлением торговли. Например по графику H4 или D1. _________________ [color=indigo:82edf1fa85]По настоящему человек раскрывается только на операционном столе (Херург).[/color:82edf1fa85] |
|
Вернуться к началу |
|
|