Kde jste: Doma » Blog » Pořadí parametrů indikátoru nebo strategie

Pořadí parametrů indikátoru nebo strategie

6. září, 2013

NinjaTrader řadí parametry NinjaScriptů podle toho kde buď:

  1. abecedně podle hodnoty atributu Gui.Design.DisplayName aplikovaného ve zdrojovém kódu na parametr
  2. podle pořadí, ve kterém se parametr vyskytuje ve zdrojovém kódu
  3. abecedně podle identifikátoru parametru ve zdrojovém kódu

Parametry v dialogu Indicators nebo Strategies

Výše uvedeným způsobem jsou řazeny jen parametry v rámci jedné kategorie. Kategorie jsou identifikovány a řazeny podle jejich názvu, který je specifikován atributem GridCategory nebo Category aplikovaným na parametr.

GridCategory vs. Category

Rozdíl mezi atributem GridCategory a Category spočívá v tom, že kategorie vytvořené tím prvním atributem jsou řazeny před kategorie vytvořené tím druhým. Atribut GridCategory byl uveden v nejnovější verzi 7 aplikace NinjaTrader, s tím, že jej mají vývojáři NinjaScriptů používat místo dosavadního atributu Category. Přičemž u kategorií parametrů, které mají všechny indikátory nebo strategie společné NinjaTrader dál používá atribut Category. Tím je zajištěno, že všechny parametry a kategorie parametrů vytvořené samotným vývojářem NinjaScriptu se vždy zobrazují před výchozími "systémovými" kategoriemi.

Trik pro změnu pořadí

Popíšu zde způsob, jakým jde změnit pořadí parametrů a kategorí bez změny jejich názvu zobrazovaného uživateli. Jak možná čekáte, dělá se to speciálními znaky, které mají vliv na abecední řazení, ale nezobrazují se. Pro parametry a atribut Gui.Design.DisplayName používám speciální znak zapisovaný escape sekvencí \r (Carriage Return). Pro kategorie a atributy GridCategory a Category používám znak \v (Vertical Tab). Oba znaky se řadí před všechny normální zobrazované znaky. Oba znaky lze použít nejen na začátku, ale i uprostřed názvu parametru nebo kategorie.

PropertyGrid

Parametry NinjaScriptu se zobrazují ve standardní microsoftí komponentě PropertyGrid. My vývojáři NinjaScriptů přímý přístup k instanci té komponenty nemáme (ačkoli nějak dost kostrbatě by asi šlo dostat se k ní, ale nezkoušel jsem to). Ale můžeme jak je nám libo ovlivňovat zobrazení jednotlivých parametrů skrze atributy aplikované na ně. Viz Getting the Most Out of the .NET Framework PropertyGrid Control. Obzvláště užitečný je atribut TypeConverter.

Jak parametr skrýt

Nejrychlejší způsob jak parametr zcela zrušit bez mazání nebo přepisování kódu, je změnit jeho modifikátor přístupu z public na protected nebo private. Pokud chcete, aby se jenom nezobrazoval v dialogu Indicators nebo Strategies, tak na něj aplikujte atribut [Browsable(false)]. Pokud chcete, aby se hodnota parametru neukládala do souboru, tak na něj aplikujte atribut [XmlIgnore()].

Návštěvy:

TOPlist
NAVRCHOLU.cz