У вас не стоит Flash Player
Настройки
#12860 - Tue Sep 14 2010 11:21 PM Несколько вопросов
Stas Offline
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)

Наверх
#12873 - Wed Sep 15 2010 10:16 AM Re: Несколько вопросов [Re: Stas]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
1. PaneSides - это обычное перечисление (enum) со значениями.
2. В расчетах скрипта нельзя использовать текущий (незакрытый бар). Или имеется в виду просто обновление графика?
3. Нужно в блок внешний скрипт включить оба файла.
4. Совместное затруднительно, лучше писать свои индикаторы, и их уже использовать.
5. Скорее всего два потока одновременно запустились с компиляцией. Влиять ни на что не должно.

Наверх
#13014 - Thu Sep 16 2010 12:25 AM Re: Несколько вопросов [Re: Nektodron]
Stas Offline
journeyman

Registered: Sat Aug 21 2010
Записи: 64
Большое спасибо за быстрый ответ.

Ещё один вопрос созрел.
Как правильно организовать оптимизацию?
В примере стратегии Money Flow Index 6 оптимизируемых параметров, из них только два присутствуют в выражениях с GetData . При этом в комментариях сказано, что в выражениях с GetData должны быть перечислены все параметры участвующие в оптимизации. Или я что-то не так понял?
// Используем GetData для кеширования данных и ускорения оптимизация.

// При неиспользовании кэша увеличивается объем обрабатываемых данных, что ведет к сильному замедлению оптимизации.

// Следует учесть, что необходимо перечислить абсолютно все изменяемые переменные используемые в вычислениях.

// Не соблюдение этого правила приведет к некорректной работе и результатам оптимизации.
Комментарии взяты из примера в документации.


Отредактировано Stas (Thu Sep 16 2010 12:26 AM)

Наверх
#13048 - Thu Sep 16 2010 10:27 AM Re: Несколько вопросов [Re: Stas]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Я не смотрел этот пример, если внутри расчета формулы, которая берется через GetData используется параметр, который не перечислен, то во время оптимизации программа не сможет правильно определить нужно ли пересчитывать данные, если этот параметр меняется. Следовательно, результаты будут не верные.
Иными словами, если в той формуле используются только два параметра, то все 6 перечислять нет необходимости, т.к. это наоборот приведет к лишним пересчетам.

Наверх
#13154 - Thu Sep 16 2010 11:45 PM Re: Несколько вопросов [Re: Nektodron]
Stas Offline
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)

Наверх
#13217 - Fri Sep 17 2010 01:09 PM Re: Несколько вопросов [Re: Stas]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Указываете все правильно, в расчете SMA участвует только параметр periodSMALong, его и указываем.

Что значит изменить PaneSides? Вы когда создаете график, указывает сторону, к которой его прикрепить, изменить потом нельзя.

Текущую котировку можно узнать только в реальных торгах (не в лаборатории)
Для этого нужно получить интерфейс ISecurityRT

var secRT = sec as ISecurityRT;
if(secRT != null)
{
// чтото делаем
}

Чтобы нарисовать толстую линиюю, нужно у полученного графика (интерфейс IGraphList) поменять свойство WIdth

Наверх
#13622 - Mon Sep 20 2010 10:20 PM Re: Несколько вопросов [Re: Nektodron]
Stas Offline
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)

Наверх
#13670 - Tue Sep 21 2010 12:48 PM Re: Несколько вопросов [Re: Stas]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
На счет оптимизации, если общее количество шагов задано меньше, чем пишет программа, то оптимизация будет идти с пропусками значений.

Трейл-стопа в API нет, но на форуме выложен код всех стандартных блоков, в том числе и блоков трейла.

На счет графиков, а вы графики только в коде делаете, а в редакторе нет графиков? Странная ошибка в общем, никто больше не сталкивался.

Наверх
#13915 - Wed Sep 22 2010 11:20 PM Re: Несколько вопросов [Re: Nektodron]
Stas Offline
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();
Почему так происходит?
Также возникает такая ошибка во время оптимизации
Ошибка службы обновления:Невозможно загрузить файл манифеста

Наверх
#14000 - Thu Sep 23 2010 11:22 PM Re: Несколько вопросов [Re: Stas]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Оптимизация идет в несколько потоков, поставьте 1 поток в настройках принудительно.

Наверх
#14477 - Thu Sep 30 2010 12:06 AM Re: Несколько вопросов [Re: Nektodron]
Stas Offline
journeyman

Registered: Sat Aug 21 2010
Записи: 64
Как то странно работают функции CloseAtStop и BuyIfGreater .
Вход и выход осуществляется уже только на закрытом баре, а не на текущем.

Наверх
#14520 - Thu Sep 30 2010 11:05 PM Re: Несколько вопросов [Re: Stas]
Stas Offline
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)


Подскажите пожалуйста.

Наверх
#14522 - Thu Sep 30 2010 11:14 PM Re: Несколько вопросов [Re: Stas]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
подробней объясните, где что у вас не работает.

Наверх
#14604 - Sat Oct 02 2010 02:50 PM Re: Несколько вопросов [Re: Nektodron]
Stas Offline
journeyman

Registered: Sat Aug 21 2010
Записи: 64
Как то странно работают функции CloseAtStop и BuyIfGreater .
Вход и выход осуществляется уже только на закрытом баре, а не на текущем.

с этим разобрался - все в порядке.


Проблема в в том ,что кодга запустил скрипт в демо-режиме, стали выскакивать ошибки, ктотрых не было, когда я тестил скрипт на истории.
Текст ошибок перечислен выше.

Наверх


Moderator:  ViL, sar