#12860 - Tue Sep 14 2010 11:21 PM
Несколько вопросов
|
journeyman
Registered: Sat Aug 21 2010
Записи: 64
|
Есть ли документация по классу PaneSides? Как изменить объект этого класса, чтобы он принял значение LEFT? По умолчанию , при создании объекта его значение равно RIGHT. Просто что-то сбивается и часть линий рисуется по правой колонке, а часть - по левой и перекос получается.
Почему при вычислении SMA не используется текущий бар? Скажите пожалуйста, возможно ли при расчете SMA включать в расчет текущий бар? Я видел, что в Welf-Lab при расчете SMA используется активные бар, причем в качестве цены закрытия используется цена последней закрытой сделки т.е. текущая цена.
Проблема с подключением нового файла в среде SharpDevelop 3.2 Создал проект, в нем пространство имен и класс. Работаю, все прекрасно. Создал в этом же проекте новый файл, в том же пространстве имен , в нем класс. namespace MySpace { /// <summary> /// Description of Class1. /// </summary> public class Class1 { int myInt; public Class1(int aa) { myInt = aa; } } } В старом файле создаю объект класса Class1. Запускаю отладку – в TSLab – ошибка – Элемент 'ВнешниСкрипт' содержит ошибку:
c:\Documents and Settings\Bulovskiy_SA\Мои документы\SharpDevelop Projects\OnlyFraktalForIgor\OnlyFraktalForIgor\OnlyFraktalForIgor.cs(71,4) : error CS0246: Не удалось найти имя типа или пространства имен 'Class1' (возможно, пропущена используемая директива или ссылка на сборку) Если включить код класса Class1 в старый файл, то все работает. Как решить эту проблему?
Возможно ли совместное использование элементов визуального редактора и внешних скриптов в одном скрипта? Как это сделать?
Иногда при запуске скрипта, TSLab выдает такое сообщение Элемент 'ВнешниСкрипт' содержит ошибку: error CS0016: Не удалось произвести запись в выходной файл "c:\Documents and Settings\Bulovskiy_SA\Local Settings\Application Data\TSLab\TSLab\temp\ext16.dll" -- "Процесс не может получить доступ к файлу, так как этот файл занят другим процессом. "
и Элемент 'ВнешниСкрипт' содержит ошибку: error CS0016: Не удалось произвести запись в выходной файл "c:\Documents and Settings\Bulovskiy_SA\Local Settings\Application Data\TSLab\TSLab\temp\ext8.dll" -- "Процесс не может получить доступ к файлу, так как этот файл занят другим процессом. "
При этом сам скрипт работает и все в порядке. Если перезапустить скрипт, то сообщение повторно не вылезает. Что это такое и как это может отобразиться на работоспособности системы?
Понимаю что вопросов много, просто накопилось. Заранее спасибо всем, кто хоть как-то поучаствует.
Отредактировано Stas (Tue Sep 14 2010 11:27 PM)
|
|
Наверх
|
|
|
|
#13014 - Thu Sep 16 2010 12:25 AM
Re: Несколько вопросов
[Re: Nektodron]
|
journeyman
Registered: Sat Aug 21 2010
Записи: 64
|
Большое спасибо за быстрый ответ.
Ещё один вопрос созрел. Как правильно организовать оптимизацию? В примере стратегии Money Flow Index 6 оптимизируемых параметров, из них только два присутствуют в выражениях с GetData . При этом в комментариях сказано, что в выражениях с GetData должны быть перечислены все параметры участвующие в оптимизации. Или я что-то не так понял? // Используем GetData для кеширования данных и ускорения оптимизация.
// При неиспользовании кэша увеличивается объем обрабатываемых данных, что ведет к сильному замедлению оптимизации.
// Следует учесть, что необходимо перечислить абсолютно все изменяемые переменные используемые в вычислениях.
// Не соблюдение этого правила приведет к некорректной работе и результатам оптимизации. Комментарии взяты из примера в документации.
Отредактировано Stas (Thu Sep 16 2010 12:26 AM)
|
|
Наверх
|
|
|
|
#13154 - Thu Sep 16 2010 11:45 PM
Re: Несколько вопросов
[Re: Nektodron]
|
journeyman
Registered: Sat Aug 21 2010
Записи: 64
|
Ну вообще в скрипте используются все шесть параметров. Вот я оптимизирую период расчета SMA и получаю её значения public OptimProperty periodSMALong = new OptimProperty(20, 1, 50, 1);
IList<double> sma_sss_buy = ctx.GetData("LongSMA", new[] {periodSMALong.ToString()}, delegate { return Series.SMA(source.ClosePrices, periodSMALong); });
и ещё я оптимизирую по какой цене выставлять stop-loss. public OptimProperty StopLossLongPct = new OptimProperty(5, 0, 50, 1); переменная StopLossLongPct в вычислениях не участвует, только в вызове установки стоп-лосса. Скажите, будет происходить оптимизация обоих параметров, или надо что-то поменять?
И ещё вопросы 10) Если PaneSides - это обычное перечисление (enum) со значениями, то как его изменить значение объекта этого класса?
11) Если в расчетах нельзя использовать текущий бар, то есть ли возможность узнать текущую котировку?
12)Скажите, пожалуйста, как нарисовать толстую линию? Спасибо.
Отредактировано Stas (Thu Sep 16 2010 11:45 PM)
|
|
Наверх
|
|
|
|
#13622 - Mon Sep 20 2010 10:20 PM
Re: Несколько вопросов
[Re: Nektodron]
|
journeyman
Registered: Sat Aug 21 2010
Записи: 64
|
Спасибо. А есть ли пример использования интерфейса ISecurityRT ? И ещё. Как-то странно происходит оптимизация. Сначала думал, что это у меня ошибка в скрипте, но потом проверил на примете из документации, и увидел, что это проблема программы, а не скрипта. Или я что-то не понимаю. Описание проблемы При оптимизации параметры не принимают всех возможных значений. Посмотрим к примеру на последний столбец High2Period . Есть всего 6 значений параметра. Хотя их должно быть гораздо больше. К примеру где комбинация значений 90 90 90 100 ? Или 50 10 70 100 ? Шаг изменения оставался неизменным и был равен 5. Скриншот. http://ipicture.ru/uploads/100920/25LYeVTTVX.jpgЕсть ли возможность во внешнем скрипте использовать Трейл Стоп? Есть ли такая API-функция? Или нужно самому писать? По поводу изменения PaneSides. Просто есть такая проблема, что часто запускаешь скрипт, а там часть графиков рисуется относительно левой стороны, а часть относительно правой, и они друг с другом не совпадают. При том что, во ВСЕХ функциях отрисовки стоит параметр PaneSides.RIGHT. mainPane.AddList(string.Format("SMAShortOrig({0}) [{1}]", periodSMAShort, source.Symbol), sma_sss_sell_Orig, ListStyles.LINE, colorSMAShort, LineStyles.DASH, PaneSides.RIGHT); Приходиться в файле менять все значения PaneSides.RIGHT на PaneSides.LEFT и обратно. Надеюсь на вашу помощь.
Отредактировано Stas (Mon Sep 20 2010 10:23 PM)
|
|
Наверх
|
|
|
|
#13915 - Wed Sep 22 2010 11:20 PM
Re: Несколько вопросов
[Re: Nektodron]
|
journeyman
Registered: Sat Aug 21 2010
Записи: 64
|
Спасибо, с оптимизацией разобрался, забывал “Максимум” нажать. И трейл-стоп нашел.
Графики я только в коде делаю. Не понял, что значит делать график в редакторе. Даже в вашем примере график рисуется в коде. Или я что-то не понял.
Почему-то возникает ошибка открытия файла. System.IO.IOException: Процесс не может получить доступ к файлу "C:\Documents and Settings\User\Мои документы\SharpDevelop Projects\OnlyFraktalForIgorNoStopLossOnlyOneSMA_NEW\OnlyFraktalForIgorNoStopLossOnlyOneSMA_NEW\SettingFraktal.txt", так как этот файл используется другим процессом. в System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) в System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy) в System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) в System.IO.FileStream..ctor(String path, FileMode mode) в OnlyFraktalForIgorNoStopLossOnlyOneSMA_NEW.OnlyFraktalForIgorNoStopLossOnlyOneSMA_NEW.Execute(IContext ctx, ISecurity source) в c:\Documents and Settings\Bulovskiy_SA\Мои документы\SharpDevelop Projects\OnlyFraktalForIgorNoStopLossOnlyOneSMA_NEW\OnlyFraktalForIgorNoStopLossOnlyOneSMA_NEW\OnlyFraktalForIgorNoStopLossOnlyOneSMA_NEW.cs:строка 117 в TSLab.User.Script.Execute(IContext context, ISecurity var0) в c:\Documents and Settings\User\Local Settings\Application Data\TSLab\TSLab\temp\code116.cs:строка 33 Скрипт открывает файл SettingFraktal.txt, читает из него данные и использует их как настройки. FileStream bFile = new FileStream("SettingFraktal.txt",FileMode.Open); StreamReader readF = new StreamReader(bFile); string str = readF.ReadLine(); str = readF.ReadLine(); nBoardLot = Convert.ToDouble(str); str = readF.ReadLine(); str = readF.ReadLine(); nFract = Convert.ToInt32(str); readF.Close(); bFile.Close(); Почему так происходит? Также возникает такая ошибка во время оптимизации Ошибка службы обновления:Невозможно загрузить файл манифеста
|
|
Наверх
|
|
|
|
#14477 - Thu Sep 30 2010 12:06 AM
Re: Несколько вопросов
[Re: Nektodron]
|
journeyman
Registered: Sat Aug 21 2010
Записи: 64
|
Как то странно работают функции CloseAtStop и BuyIfGreater . Вход и выход осуществляется уже только на закрытом баре, а не на текущем.
|
|
Наверх
|
|
|
|
#14520 - Thu Sep 30 2010 11:05 PM
Re: Несколько вопросов
[Re: Stas]
|
journeyman
Registered: Sat Aug 21 2010
Записи: 64
|
Какие-то странные ошибки возникают во время работы.
22:55:29.17 System.NullReferenceException: Object reference not set to an instance of an object. at TSLab.ScriptEngine.TemplateContext.GetProperties(TemplateData templ) at TSLab.ScriptEngine.TemplateContext.UpdatedProperties(TemplateData templ, IEnumerable`1 parameters) at TSLab.ScriptEngine.TemplateContext.Execute(TemplateData templ, IEnumerable`1 parameters, Boolean clearCaches)
22:55:47.75 System.NullReferenceException: Object reference not set to an instance of an object. at TSLab.ScriptEngine.TemplateContext.Execute(TemplateData templ, IEnumerable`1 parameters, Boolean clearCaches)
Подскажите пожалуйста.
|
|
Наверх
|
|
|
|
#14604 - Sat Oct 02 2010 02:50 PM
Re: Несколько вопросов
[Re: Nektodron]
|
journeyman
Registered: Sat Aug 21 2010
Записи: 64
|
Как то странно работают функции CloseAtStop и BuyIfGreater . Вход и выход осуществляется уже только на закрытом баре, а не на текущем.
с этим разобрался - все в порядке.
Проблема в в том ,что кодга запустил скрипт в демо-режиме, стали выскакивать ошибки, ктотрых не было, когда я тестил скрипт на истории. Текст ошибок перечислен выше.
|
|
Наверх
|
|
|
|
|
|