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

Дополнительные индикаторы от пользователей Альфа-Директ 4. Готовые решения от пользователей.
Аватара пользователя
Den
Сообщения: 345
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

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

Непрочитанное сообщение Den » 01 дек 2017, 11:38

1. В WriteData_II уже менять ничего не надо он исправлен ,исправить надо приведенный чуть выше ReadData_II.
Последний раз редактировалось Den 03 дек 2017, 23:17, всего редактировалось 3 раза.

Аватара пользователя
Den
Сообщения: 345
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

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

Непрочитанное сообщение Den » 01 дек 2017, 11:51

Приведу простой аналогичный пример.

Вы меня спрашиваете - "КАК ВОЗМОЖНЫ АПРИОРНЫЕ СИНТЕТИЧЕСКИЕ СУЖДЕНИЯ, РАЗЪЯСНИТЕ,НИКАК НЕ ПОЙМУ ?"

а я вам отвечаю - "У КАНТА ВСЁ ЕСТЬ, ТАМ ВСЕ ДОХОДЧИВО ИЗЛОЖЕНО. ЧИТАЙТЕ КАНТА. ОБЕ КНИГИ."

Аватара пользователя
Den
Сообщения: 345
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

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

Непрочитанное сообщение Den » 01 дек 2017, 12:28

Пересечения есть,но не на SMA 100, Евгений, а на SMA 50 (то есть аналог ReadData) :)
Вложения
h11.png

Аватара пользователя
Den
Сообщения: 345
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

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

Непрочитанное сообщение Den » 01 дек 2017, 13:41

тоже самое на си - передача пересечения из Н1 в S30
Вложения
h13.png

Аватара пользователя
Simonov
Сообщения: 89
Зарегистрирован: 20 сен 2017, 11:36
Благодарил (а): 83 раза
Поблагодарили: 20 раз

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

Непрочитанное сообщение Simonov » 01 дек 2017, 13:44

...
Последний раз редактировалось Simonov 02 дек 2017, 10:59, всего редактировалось 1 раз.

Аватара пользователя
Den
Сообщения: 345
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

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

Непрочитанное сообщение Den » 01 дек 2017, 13:57

.
Последний раз редактировалось Den 03 дек 2017, 23:16, всего редактировалось 1 раз.

Аватара пользователя
Den
Сообщения: 345
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

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

Непрочитанное сообщение Den » 01 дек 2017, 15:36

Евгений, ReadData_II хочет читать сигналы MY.индикатора, но не может.

Исправленный вами WriteData_II НЕ ЧИТАЕТ (то есть сигналы не появляются), но читает WriteData c EMA и SMA.

Поэтому рисует такой вот график.
Вложения
h14.png

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

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

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

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

как запустить робота на вашем индикаторе?

Так он не раотает.

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

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

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

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

}

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

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

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

Приветствую, Tyler_Durden!

Проверил.

1. Взял код стратегии выше не меняя.
2. Создал WriteData на график поместил на таймфрейм SIZ7 = 1H.
3. Создал ReadData с сериями Ema (8) и Sma (13), которые передает WriteData в слот 1.

Протестировал стратегию на 1 минутном ТФ за 20000 баров (36 дней).

ReadData-Strategy-Sma-Ema-01.png
ReadData-Strategy-Sma-Ema-01.png (33.83 КБ) 7143 просмотра


Причин почему не работает в вашем случае может быть много, не пишутся данные в DataSlot1, некорректный код WriteData или ReadData и т.д., т.к. их не вижу не могу сказать.

Приведу свои из этого теста:

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

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

AddParameter("PeriodSMA", 13, 1); // период для формирования средней скользящей
AddParameter("PeriodEMA", 8, 1); // период для формирования средней скользящей

AddSeries("A");   
}

function Evaluate()
{

// evge 13.10.2017 http://alfadirect4.ru

// получаем данные из индикатора

var S = SMA(I, PeriodSMA);
var E = EMA(I, PeriodEMA);

if (DataSlot == 0) return;

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

string FileName = String.Format("{0}-{1}-{2}-{3}-{4}-{5}",
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], S[0], E[0]));

}


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

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

AddParameter("DataSlot", 0);

AddShadowSeries("Open", DrawAs.Custom, Color.MediumSeaGreen, 100);   
AddShadowSeries("High", DrawAs.Custom, Color.Silver, 100);   
AddShadowSeries("Low", DrawAs.Custom, Color.Silver, 100);   
AddShadowSeries("Close", DrawAs.Custom, Color.Coral, 100);

AddShadowSeries("Sma", DrawAs.Line, Color.Blue, 100);
AddShadowSeries("Ema", DrawAs.Line, Color.Red, 100);

}

function Evaluate()
{

// evge 13.10.2017 http://alfadirect4.ru

if (DataSlot == 0) return;

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

var FileName = String.Format("{0}-{1}-{2}-{3}-{4}-{5}",
BarDate().Year, BarDate().Month, BarDate().Day, BarTime().Hours, 0, 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)
{
Open = double.Parse(Bar[0]);
High = double.Parse(Bar[1]);
Low = double.Parse(Bar[2]);
Close = double.Parse(Bar[3]);

Sma[0] = double.Parse(Bar[8]);
Ema[0] = double.Parse(Bar[9]);

if (Close > Open)
{
   Open.DrawHistogram(Close);
   High.DrawVertical(Close);
   Low.DrawVertical(Open);
}
else
{
   if (Close[0] == Open[0]) Close.DrawDash(Colors["High"], LineStyles.Solid, 1,0);
   else Close.DrawHistogram(Open);
   High.DrawVertical(Open);
   Low.DrawVertical(Close);
}

} // count > 3

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

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

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

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

evge, спасибо за столь быстрый ответ ! буду тестить


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

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

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