Код: Выделить всё
AddInput("I", Inputs.Candle);
заменить на
Код: Выделить всё
AddInput("Input", Inputs.Candle);
,
Код: Выделить всё
function Evaluate()
{
заменить на
Код: Выделить всё
function Evaluate()
{
var I = Input;
исправленный код индикатора:
Код: Выделить всё
function Initialize()
{
IndicatorName = "Trades";
PriceStudy = true;
AddInput("Input", Inputs.Candle);
AddSeries("Buy", DrawAs.Custom, Color.Green);
AddSeries("Sell", DrawAs.Custom, Color.Red);
AddGlobalVariable("C", Types.DoubleList); // кол-во
AddGlobalVariable("Price", Types.DoubleList); // цена
AddGlobalVariable("DT", Types.DoubleList); // дата и время
AddGlobalVariable("Type", Types.IntList); // тип
}
function Evaluate()
{
var I = Input;
// evge 24.11.2017 http://alfadirect4.ru
// Считываем данные из файла X:\Program Files (x86)\Alfa-Direct Pro\Trades\ТИКЕР ИНСТРУМЕНТА.txt
// формат строк которого "1000 225 23.11.2017 11:00:00 B", разделитель пробел, данные: кол-во, цена, дата, вермя, тип (B - покупка, S - продажа)
if (C.Count == 0)
{
string Path = @"Trades\\";
System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo(Path);
if (!dirInfo.Exists) dirInfo.Create();
var Ticker = I.VirtualSecurity.Split('=')[0];
string FileName = Ticker + ".txt";
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();
string[] Data = S.Split(' ');
if (Data.Count() >= 5)
{
C.Add(double.Parse(Data[0]));
Price.Add(double.Parse(Data[1]));
//Data[2] + " " + Data[3];
var D = DateTime.ParseExact(Data[2] + " " + Data[3], "dd.MM.yyyy HH:mm:ss", null);
DT.Add(D.ToBinary());
if (Data[4] == "S")
Type.Add(-1);
if (Data[4] == "B")
Type.Add(1);
}
}
output.Close();
}
} // c == 0
for (var x = 0; x < C.Count; x++)
{
long b = Convert.ToInt64(DT[x]);
DateTime d = DateTime.FromBinary(b).Date;
TimeSpan t = DateTime.FromBinary(b).TimeOfDay;
if (BarDate(0) == d && BarDate(1) != d && BarTime(0) == AsTime(0,0,0) && BarTime(1) == AsTime(0,0,0))
{
if (Type[x] > 0) Buy[0] = Price[x];
if (Type[x] < 0) Sell[0] = Price[x];
}
if (BarDate(0) == d && t == BarTime(0))
{
if (Type[x] > 0) Buy[0] = Price[x];
if (Type[x] < 0) Sell[0] = Price[x];
}
if (BarDate(0) == d && t >= BarTime(1) && t < BarTime(0))
{
if (Type[x] > 0) Buy[1] = Price[x];
if (Type[x] < 0) Sell[1] = Price[x];
}
}
Buy.DrawArrowUp();
Sell.DrawArrowDown();
}
Файл: C:\Program Files (x86)\Alfa-Direct Pro\Trades\USD.txt
Код: Выделить всё
1000 94,6 17.04.2024 09:00:00 S
1000 94,1 18.04.2024 12:00:00 S
1000 93,4 23.04.2024 12:00:00 S
2000 91,4 26.04.2024 18:00:00 B
1000 92 27.04.2024 15:00:00 B