Пользовательские индикаторы > FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Дополнительные индикаторы от пользователей Альфа-Директ 4. Готовые решения от пользователей.
Аватара пользователя
Tyler_Durden
Сообщения: 65
Зарегистрирован: 01 дек 2017, 20:42
Благодарил (а): 6 раз

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Непрочитанное сообщение Tyler_Durden » 05 дек 2017, 21:11

так?

Код: Выделить всё

function Initialize()
{
   StrategyName = "ReadData";
   AddParameter("P1", 0, "", 1);
   AddInput("Input1", Inputs.Candle, -10, true, "SiZ7=ФОРТС");
   LongLimit = 1;
   ShortLimit = -1;
}

function OnUpdate()
{
   /// ПРАВИЛО 1
   if (MY.ReadData(Input1, 1)["Ema"] > MY.ReadData(Input1, 1)["Sma"])
   {
      EnterLong();
   }

   /// ПРАВИЛО 2
   if (MY.ReadData(Input1, 1)["Ema"] < MY.ReadData(Input1, 1)["Sma"])
   {
      EnterShort();
   }

}

Аватара пользователя
evge
Администратор
Сообщения: 1641
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 64 раза
Поблагодарили: 294 раза
Контактная информация:

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Непрочитанное сообщение evge » 05 дек 2017, 21:13

Да
никогда такого не было и вот опять

Аватара пользователя
Tyler_Durden
Сообщения: 65
Зарегистрирован: 01 дек 2017, 20:42
Благодарил (а): 6 раз

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Непрочитанное сообщение Tyler_Durden » 05 дек 2017, 22:30

нифига не работает. Ладно попробуем другую форму представления графика

Аватара пользователя
Tyler_Durden
Сообщения: 65
Зарегистрирован: 01 дек 2017, 20:42
Благодарил (а): 6 раз

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Непрочитанное сообщение Tyler_Durden » 06 дек 2017, 10:30

evge, добрый день!

а вот такой заработает? сигналы он показывает из старшего, но тестирование не выдает сделок почему-то

Код: Выделить всё

function Initialize()
{
IndicatorName = "A12";
AddInput("Input", Inputs.Candle);
PriceStudy = true;
AddSeries("H", DrawAs.Custom, Color.Magenta);
AddSeries("L", DrawAs.Custom, Color.Lime);
}

function Evaluate()
{
if (( Input.Close[0] < Input.Close[1]) && ( Input.Close[1] >= Input.Close[2]) )
{
H[-1] = Input.Close[1];
}
if (( Input.Close[0] > Input.Close[1]) && ( Input.Close[1] <= Input.Close[2]) )
{
L[-1] = Input.Close[1];
}
H.DrawArrowDown(Color.Red, LineStyles.Solid, 2, Color.Red, 5);
L.DrawArrowUp(Color.Lime, LineStyles.Solid, 2, Color.Lime, 5);

}




и WriteData для него

Код: Выделить всё

function Initialize()
{
IndicatorName = "WriteData_X";   
PriceStudy = true;   
AddInput("I", Inputs.Candle);   
AddParameter("DataSlot", 0);
AddSeries("A");   
}

function Evaluate()
{

var H = MY.A12(I).GetValue("H", 1);
var L = MY.A12(I).GetValue("L", 1);


if (DataSlot == 0) return;

string Path = @"DataSlot" + (int)DataSlot + "\\";
System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo(Path);
if (!dirInfo.Exists) dirInfo.Create();
string Ticker = Input.VirtualSecurity.Split('=')[0];
string FileName = String.Format("{0}-{1}-{2}-{3}-{4}-{5}-{6}",
Ticker, BarDate().Year, BarDate().Month, BarDate().Day, BarTime().Hours, BarTime().Minutes, BarTime().Seconds);

string URL = Path + FileName;

if (System.IO.File.Exists(URL) && CurrentIndex != MaxIndex) return;

ClearFile(URL);
WriteLine(URL, String.Format("{0};{1};{2};{3};{4};{5};{6};{7};{8};{9}", I.Open[0], I.High[0], I.Low[0], I.Close[0], I.Volume[0], I.VolumeBid[0], I.VolumeAsk[0], I.OpenInterest[0], H, L));

}




и ReadData

Код: Выделить всё

function Initialize()
{
IndicatorName = "ReadData_X";
PriceStudy = true;   
AddInput("I", Inputs.Candle);   

AddParameter("DataSlot", 0);

AddSeries("H", DrawAs.Custom, Color.Red);   
AddSeries("L", DrawAs.Custom, Color.Green);   
}

function Evaluate()
{

if (DataSlot == 0) return;

string Path = @"DataSlot" + (int)DataSlot + "\\";
System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo(Path);
if (!dirInfo.Exists) dirInfo.Create();

string Ticker = Input.VirtualSecurity.Split('=')[0];
string FileName = String.Format("{0}-{1}-{2}-{3}-{4}-{5}-{6}",
Ticker, BarDate().Year, BarDate().Month, BarDate().Day, BarTime().Hours, BarTime().Minutes, 0);

var URL = Path + FileName;

string S = "";
if (System.IO.File.Exists(URL))
{
System.IO.StreamReader output = new System.IO.StreamReader(URL);
while (!output.EndOfStream) S += output.ReadLine();
output.Close();
}

string[] Bar = S.Split(';');

// бар найден
if (Bar.Count() > 3)
{

H[1] = double.Parse(Bar[8]);
L[1] = double.Parse(Bar[9]);

H.DrawArrowDown(Color.Red, LineStyles.Solid, 10, Color.Red, 10);
L.DrawArrowUp(Color.Green, LineStyles.Solid, 10, Color.Green, 10);


} // count > 3

}


Вложения
rd_X.png

Аватара пользователя
evge
Администратор
Сообщения: 1641
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 64 раза
Поблагодарили: 294 раза
Контактная информация:

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Непрочитанное сообщение evge » 06 дек 2017, 11:05

Причина, возможно в том, что рисует задним числом свои значения [1], т.е. на предыдущем баре
никогда такого не было и вот опять

Аватара пользователя
Tyler_Durden
Сообщения: 65
Зарегистрирован: 01 дек 2017, 20:42
Благодарил (а): 6 раз

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Непрочитанное сообщение Tyler_Durden » 06 дек 2017, 12:47

ну так фракталы тоже задним рисуют они же тестируются. И тут тоже самое - он выставляет сигнал на м1, а s10 его исполняет. В чем тут проблем?

хорошо вот так не задним числом, все равно робот стоит, не открывает позицию.

Он никак не хочет работать ни линией, ни стрелками

Код: Выделить всё

function Initialize()
{
IndicatorName = "A12";
AddInput("Input", Inputs.Candle);
PriceStudy = true;
AddSeries("H", DrawAs.Custom, Color.Magenta);
AddSeries("L", DrawAs.Custom, Color.Lime);
}

function Evaluate()
{
if ( Input.Close[0] < Input.Close[1] )
{
H[0] = Input.Close[0];
}
if ( Input.Close[0] > Input.Close[1]) 
{
L[0] = Input.Close[0];
}
H.DrawArrowDown(Color.Red, LineStyles.Solid, 2, Color.Red, 5);
L.DrawArrowUp(Color.Lime, LineStyles.Solid, 2, Color.Lime, 5);

}

Аватара пользователя
Tyler_Durden
Сообщения: 65
Зарегистрирован: 01 дек 2017, 20:42
Благодарил (а): 6 раз

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Непрочитанное сообщение Tyler_Durden » 06 дек 2017, 12:58

при этом дата пишется
Вложения
dataSlot1.png
dataSlot1.png (25.51 КБ) 5511 просмотров

Аватара пользователя
evge
Администратор
Сообщения: 1641
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 64 раза
Поблагодарили: 294 раза
Контактная информация:

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Непрочитанное сообщение evge » 06 дек 2017, 13:56

Пишется, но подозрительное значение для 8-го по индексу элемента = NaN
никогда такого не было и вот опять

Аватара пользователя
evge
Администратор
Сообщения: 1641
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 64 раза
Поблагодарили: 294 раза
Контактная информация:

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Непрочитанное сообщение evge » 06 дек 2017, 14:11

Ещё момент

Код: Выделить всё

if (System.IO.File.Exists(URL) && CurrentIndex != MaxIndex) return;


Вот эта строка в WriteData_X для проверки, если уже однажды были записаны данные для бара, то НЕ записывать их снова, т.е. если индикатор что-то рисует задним числом, то эта строка не позволит обновить данные там, где значения от индикатора ранее не было.

Добавлена она была для ускорения работы WriteData, данные обновляются только для последнего бара.

Если надо обновлять постоянно при перерисовке то закомментировать строку эту или удалить.
Это может существенно повлиять на производительность.
никогда такого не было и вот опять

Аватара пользователя
Tyler_Durden
Сообщения: 65
Зарегистрирован: 01 дек 2017, 20:42
Благодарил (а): 6 раз

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Непрочитанное сообщение Tyler_Durden » 06 дек 2017, 14:15

который вчера не хотел на пересечениях работать заработал.

Сейчас проверю ваше уточнение на стрелочном.

Закомментирование этой строки приводит к остановке всех графиков почему-то
Последний раз редактировалось Tyler_Durden 06 дек 2017, 14:40, всего редактировалось 1 раз.


Вернуться в «Пользовательские индикаторы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя