• Demo счет NinjaTrader, регистрируется в брокерской компании NinjaTrader Brokerage . NinjaTrader™, LLC
    Ссылка на демо счет NinjaTrader
    Фид на соединении Continuum/CQG.
    Для справки: Continuum - это брэнд CQG.
    Обратите внимание, что в настоящее время CQG не высылает логин и пароль на электронные адреса от mail.ru, bk.ru, list.ru, inbox.ru, поэтому необходимо повторить регистрацию с электронного адреса от другого домейна (yahoo, gmail, и тд).
  • NinjaTrader с зарекомендовавшим себя брокерским сервисом предоставляет наилучшие условия для фьючерсной торговли, включая:
    • Низкие комиссии: Экономьте на торгах через низкие и понятные комиссии
    • Низкая маржа: Всего $50 для микро контрактов
    • Низкие минимумы: Откройте счет от $400
    • Бесплатная платформа: Включает весь необходимый функционал для торговли в реале
  • Открыть счет в Тинькофф Банке
    Ссылка на сайт банка
    Для справки: на Тинькофф банк вывод денежных средств с брокерского счета приходит без проблем.
  • Уважаемые посетители форума!
    При регистрации на форуме отправляется письмо подтверждения на ваш почтовый ящик, если письмо не пришло, просьба проверить папку "спам" вашего почтового ящика, возможно письмо попало туда.
  • Сколько я реально плачу комиссии?
    Подробнее по ссылке

Вытащить данные в файл

S

slavavs82

New Member
NinjaTrader
  • #1
Подскажите, пожалуйста, как вытащить данные в файл.
Я загружаю историю на ренко за период (допустим год). Мне нужно в файле создать 4 столбца с разделителем (цена закрытия (ренко), время, объем, дельта) и выгрузить эти данные.
 
A

Arkadiy

Well-Known Member
NinjaTrader
  • #2
такой пример есть в хелпе
ссылка
 
  • Like
Реакции: Alexander
S

slavavs82

New Member
NinjaTrader
  • #3
Я смотрел импорт, там нет ренко. В примере zip, какой-то индикатор, импорт OHLS. В любом случае спасибо, буду help учить
 
T

thinarthrill

Well-Known Member
NinjaTrader
  • #4
slavavs82 сказал(а):
Я смотрел импорт, там нет ренко. В примере zip, какой-то индикатор, импорт OHLS. В любом случае спасибо, буду help учить
Не надо хелп учить, Аркадий указал на индикатор, он и с ренко будет работать. Только вместо параметров с OHLC надо указать ваши параметры (цена закрытия (ренко), время, объем, дельта)
 
  • Like
Реакции: Alexander и Arkadiy
S

slavavs82

New Member
NinjaTrader
  • #5
Понял, тут вопрос как это прописать))) в любом случае хелп))
 
A

Arkadiy

Well-Known Member
NinjaTrader
  • #6
Код:
sw.WriteLine(Close[0] + "," + Time[0] + "," + VOL()[0] + "," +  тут надо высчитывать дельту);
вот всего одна строка
 
  • Like
Реакции: Alexander
S

slavavs82

New Member
NinjaTrader
  • #7
Дельта у меня на графике есть, ее нельзя просто считать? И время, оно наверно в сек, а можно его в милисек?
 
Последнее редактирование:
A

Arkadiy

Well-Known Member
NinjaTrader
  • #8
slavavs82 сказал(а):
Дельта у меня графике есть, ее нельзя просто читать? И время, оно наверно в сек, а можно его в милисек?
если есть на графике, то надо понять как она там считается, и вставить в свой алгоритм. можно все сделать, потихоньку пробуй.
 
  • Like
Реакции: Alexander
N

NTTrade

Well-Known Member
NinjaTrader
  • #9
Не Хелпы нужно учить, а язык C# :)

C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO; Подключить в НТ эту библиотеку

namespace StreamReadWrite
{
    class Program
    {
        static void Main(string[] args)
        {
            // Get the directories currently on the C drive.
            DirectoryInfo[] cDirs = new DirectoryInfo(@"c:\").GetDirectories();

            // Write each directory name to a file.
            using (StreamWriter sw = new StreamWriter("CDriveDirs.txt"))
            {
                foreach (DirectoryInfo dir in cDirs)
                {
                    sw.WriteLine(dir.Name);

                }
            }

            // Read and show each line from the file.
            string line = "";
            using (StreamReader sr = new StreamReader("CDriveDirs.txt"))
            {
                while ((line = sr.ReadLine()) != null)
                {
                    Console.WriteLine(line);
                }
            }
        }
    }
}
 
  • Like
Реакции: slavavs82, thinarthrill и Alexander
S

slavavs82

New Member
NinjaTrader
  • #10
Спасибо за код. Мне конечно стыдно спрашивать, что этот код делает, но как мне кажется он точно не записывает в файл цену закрытия Ренко, время...)))
 
  • Like
Реакции: Alexander
N

NTTrade

Well-Known Member
NinjaTrader
  • #11
slavavs82 сказал(а):
Спасибо за код. Мне конечно стыдно спрашивать, что этот код делает, но как мне кажется он точно не записывает в файл цену закрытия Ренко, время...)))
Код это синтаксис языка C# как создать папку, как создать тхт файл, как записать данные в файл, как прочитать данные из файла.

А как записать данные вам написал Аркадий. sw.WriteLine(Close[0].ToString() + "," + Time[0].ToString() + "," + VOL[0] .ToString()+ "," + Delta[0].ToString());
 
  • Like
Реакции: slavavs82 и Alexander
A

Arkadiy

Well-Known Member
NinjaTrader
  • #12
slavavs82 сказал(а):
Спасибо за код. Мне конечно стыдно спрашивать, что этот код делает, но как мне кажется он точно не записывает в файл цену закрытия Ренко, время...)))
Если не знаком с базовыми понятиями и синтаксисом языка с#, то будет очень сложно. Начните с него. Потом просто надо разобраться где эти конструкции вставить чтобы получить результат.
 
S

slavavs82

New Member
NinjaTrader
  • #13
2019-05-29 01:06:00.000;59,05;59,03;59,03

как заменить запятую на точку (59,05 -> 59.05)
 
S

slavavs82

New Member
NinjaTrader
  • #14
NTTrade сказал(а):
А как записать данные вам написал Аркадий. sw.WriteLine(Close[0].ToString() + "," + Time[0].ToString() + "," + VOL[0] .ToString()+ "," + Delta[0].ToString());
Что касается Time, Close, Open все работает четко. Дельта не работает, так как это параметр расчетный, он считает как разница между Bid\Ask. В принципе мне бы и Bid\Ask хватило, но как их достать??? Если просто прописать Bid[0] - не работает- ошибка
 
N

NTTrade

Well-Known Member
NinjaTrader
  • #15
slavavs82 сказал(а):
Что касается Time, Close, Open все работает четко. Дельта не работает, так как это параметр расчетный, он считает как разница между Bid\Ask. В принципе мне бы и Bid\Ask хватило, но как их достать??? Если просто прописать Bid[0] - не работает- ошибка

Method Return Value
A double value representing the current bid price.

A double value representing the current askprice.


Syntax
GetCurrentBid()
GetCurrentBid(int barsSeriesIndex)

Syntax
GetCurrentAsk()
GetCurrentAsk(int barsSeriesIndex)

Или так можно получать данные

protected override void OnMarketData(MarketDataEventArgs e)
{
if(e.MarketDataType == MarketDataType.Last)
{
if(e.Price >= e.Ask)
{
double ПеременнаяAsk = e.Volume;
}

else if(e.Price <= e.Bid)
{
double ПеременнаяBid = e.Volume;
}
else if(e.Price != e.Bid && e.Price != e.Ask)
{
double ПеременнаяBetween = e.Volume;
}

}
}
 
  • Like
Реакции: slavavs82
N

NTTrade

Well-Known Member
NinjaTrader
  • #16
slavavs82 сказал(а):
2019-05-29 01:06:00.000;59,05;59,03;59,03

как заменить запятую на точку (59,05 -> 59.05)
Когда делаете запись указываете как записывать.

sw.WriteLine(Close[0].ToString("0.0") + "," + Time[0].ToString() + "," + VOL[0] .ToString()+ "," + Delta[0].ToString());
 
  • Like
Реакции: slavavs82
S

slavavs82

New Member
NinjaTrader
  • #17
NTTrade сказал(а):
Когда делаете запись указываете как записывать.

sw.WriteLine(Close[0].ToString("0.0") + "," + Time[0].ToString() + "," + VOL[0] .ToString()+ "," + Delta[0].ToString());
Не работает этот вариант, все равно запятая...
 
S

slavavs82

New Member
NinjaTrader
  • #18
,System.Globalization.CultureInfo.GetCultureInfo("en-US")
вот это еще надо было указать
 
N

NTTrade

Well-Known Member
NinjaTrader
  • #19
S

slavavs82

New Member
NinjaTrader
  • #20
Arkadiy сказал(а):
такой пример есть в хелпе
ссылка
Сделал я такой индикатор. Пишет в файл нормально, но возникла проблема, для больших файлов жрет память сильно, зависает и вылетает программа.
Дело в том, что этот индикатор пишет сначала в память, а затем выдает файл.
Как мне исправить код, чтобы в файл писалось построчно после каждого бара? То есть бар прочитали, записал и тд??
 
Верх Низ