В общем случае конечно отразится. Но вот как отразится зависит от конкретной стратегии, например, для стратегии задержки в десятки секунд м.б. совершенно некритичны. Но если это скальпинг, то такие задержки могут привести к полной неработоспособности стратегии.Владимир Валерьевич писал(а):Отразится ли зависание графика Малого ТФ на работе робота??
Было ли подвисание младшего ТФ до использования файлов для передачи данных?
Во всяком случае, я вполне допускаю, что подвисание происходит по причине обмена файлами.
Прежде всего, попытка прочитать файл, которого не существует, приведет к ошибке чтения и подвисанию. Поэтому, прежде чем открыть файл, надо удостоверится, что он есть на диске. Не забываем, что после прочтения файл надо (в нашей системе) удалить.
Код: Выделить всё
if(System.IO.File.Exists(File_Name))
{
//открываем и читаем файл
// не забываем закрыть потоки и очистить ресурсы
System.IO.File.Delete(File_Name);
}
Попытка присвоить строку из файла переменной также приведет к ошибке. Поэтому делаем так:
Код: Выделить всё
string str ="10";
int a = Int32.Parse(str) // если в строке целое число
str="10.27";
double b=Double.Parse(str); //Если число дробное
И последнее. Это не решает всех проблем с файловым обменом, т.к. попытка открыть файл кот. в настоящий момент уже существует, но еще записывается, также приведет к ошибке и, возможно, подвисанию. Таким образом, если файл существует, то перед его открытием для чтения, необходимо проверить его аттрибуты, и убедиться, что файл не открыт для записи другим роботом/индикатором или программой. Это делается через свойства FileAttributes, но я пока этим не занимался.