на старшим ТФ расчитывал инд-р и сохранял в файле
Код: Выделить всё
function Initialize()
//индикатор НЕ формируется на текущем баре а вычисляется на предыдущем
{IndicatorName = "FrChImp";
PriceStudy = true; AddInput("Input", Inputs.Candle);
AddSeries("UpMd", DrawAs.Custom, Color.Gray); AddSeries("LwMd", DrawAs.Custom, Color.Gray);
AddParameter("FileName", 0);
}
function Evaluate()
{
// если есть фрактал вниз
if ( (Input.Low[-3]>Input.Low[-1]) && (Input.Low[-2]>Input.Low[-1]) ) LwMd[-1]=Input.Low[-1];
// если есть фрактал вверх
if ( (Input.High[-3]<Input.High[-1]) && (Input.High[-2]<Input.High[-1]) ) UpMd[-1]=Input.High[-1];
LwMd[0]=LwMd[-1]; UpMd[0]=UpMd[-1];
UpMd.DrawLine(Color.Brown, Line.Dot, 1); LwMd.DrawLine(Color.Teal, Line.Dot, 1);
//if ( MaxIndex != LastBarIndex)
//{
string fn="a"; if (FileName!=0) fn=@"D:\ADirect\Buf\"+Convert.ToString(FileName)+"B.txt";
string path = fn;
using (System.IO.StreamWriter sw = System.IO.File.CreateText(path))
{sw.WriteLine(UpMd);sw.WriteLine(LwMd);
sw.Close(); sw.Dispose();
}
//LastBarIndex = CurrentIndex; //запоминаем индекс текущего бара
//}
}
на младшем ТФ считывал значения и выводил на график
Код: Выделить всё
function Initialize()
{
// Область определения параметров индикатора
// Обязательные параметры:
IndicatorName = "FrChExp"; // Задайте название индикатора и сохраните с данным именем
PriceStudy = true; // Рисовать в области цены (true – да, false – нет)
AddInput("Input", Inputs.Candle); // Input - входной ряд (Inputs.Price) или свечи (Inputs.Candle)
AddSeries("P1", DrawAs.Custom, Color.Gray); AddSeries("P2", DrawAs.Custom, Color.Gray);
AddGlobalVariable("LastBarIndex", Types.Int, 0);
AddParameter("FileName", 11);
}
function Evaluate()
{ string fn="a"; if (FileName!=0) fn=@"D:\ADirect\Buf\"+Convert.ToString(FileName)+"B.txt";
string path = fn;
using (System.IO.StreamReader sr = System.IO.File.OpenText(path))
{ string s = "";
s = sr.ReadLine(); P1=Convert.ToDouble(s); s = sr.ReadLine(); P2=Convert.ToDouble(s);
sr.Close(); sr.Dispose();
}
P1.DrawLine(Color.Green,Line.DashSmall, 1); P2.DrawLine(Color.Red, Line.DashSmall, 1);
}
Выглядело это так: