Пользовательские индикаторы > FractalsMTF - отображение фракталов старшего таймфрейма на младшем
Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем
1. В WriteData_II уже менять ничего не надо он исправлен ,исправить надо приведенный чуть выше ReadData_II.
Последний раз редактировалось Den 03 дек 2017, 23:17, всего редактировалось 3 раза.
Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем
Приведу простой аналогичный пример.
Вы меня спрашиваете - "КАК ВОЗМОЖНЫ АПРИОРНЫЕ СИНТЕТИЧЕСКИЕ СУЖДЕНИЯ, РАЗЪЯСНИТЕ,НИКАК НЕ ПОЙМУ ?"
а я вам отвечаю - "У КАНТА ВСЁ ЕСТЬ, ТАМ ВСЕ ДОХОДЧИВО ИЗЛОЖЕНО. ЧИТАЙТЕ КАНТА. ОБЕ КНИГИ."
Вы меня спрашиваете - "КАК ВОЗМОЖНЫ АПРИОРНЫЕ СИНТЕТИЧЕСКИЕ СУЖДЕНИЯ, РАЗЪЯСНИТЕ,НИКАК НЕ ПОЙМУ ?"
а я вам отвечаю - "У КАНТА ВСЁ ЕСТЬ, ТАМ ВСЕ ДОХОДЧИВО ИЗЛОЖЕНО. ЧИТАЙТЕ КАНТА. ОБЕ КНИГИ."
Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем
Пересечения есть,но не на SMA 100, Евгений, а на SMA 50 (то есть аналог ReadData) 

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем
тоже самое на си - передача пересечения из Н1 в S30
Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем
.
Последний раз редактировалось Den 03 дек 2017, 23:16, всего редактировалось 1 раз.
Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем
Евгений, ReadData_II хочет читать сигналы MY.индикатора, но не может.
Исправленный вами WriteData_II НЕ ЧИТАЕТ (то есть сигналы не появляются), но читает WriteData c EMA и SMA.
Поэтому рисует такой вот график.
Исправленный вами WriteData_II НЕ ЧИТАЕТ (то есть сигналы не появляются), но читает WriteData c EMA и SMA.
Поэтому рисует такой вот график.
- Tyler_Durden
- Сообщения: 68
- Зарегистрирован: 01 дек 2017, 20:42
- Благодарил (а): 6 раз
Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем
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
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 369 раз
- Контактная информация:
Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем
Приветствую, Tyler_Durden!
Проверил.
1. Взял код стратегии выше не меняя.
2. Создал WriteData на график поместил на таймфрейм SIZ7 = 1H.
3. Создал ReadData с сериями Ema (8) и Sma (13), которые передает WriteData в слот 1.
Протестировал стратегию на 1 минутном ТФ за 20000 баров (36 дней).
Причин почему не работает в вашем случае может быть много, не пишутся данные в DataSlot1, некорректный код WriteData или ReadData и т.д., т.к. их не вижу не могу сказать.
Приведу свои из этого теста:
Проверил.
1. Взял код стратегии выше не меняя.
2. Создал WriteData на график поместил на таймфрейм SIZ7 = 1H.
3. Создал ReadData с сериями Ema (8) и Sma (13), которые передает WriteData в слот 1.
Протестировал стратегию на 1 минутном ТФ за 20000 баров (36 дней).
Причин почему не работает в вашем случае может быть много, не пишутся данные в 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
- Сообщения: 68
- Зарегистрирован: 01 дек 2017, 20:42
- Благодарил (а): 6 раз
Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем
evge, спасибо за столь быстрый ответ ! буду тестить
Вернуться в «Пользовательские индикаторы»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя