Licencování indikátorů

Tuto službu oceníte, pokud máte komunitu, které chcete pronajímat indikátory.
Indikátory mohou používat pouze klienti, kteří si koupí licenci a po vypršení licence opět nefungují.

Určitě jste řešili nebo stále řešíte situaci

  • Mám klienty (např. discord skupina), kterým chci nabídnout indikátory
  • Klient si indikátor koupí, aktivuje se mu licence a může ho libovolně používat
  • Po vypršení koupené periody se indikátor automaticky deaktivuje
  • Než se tak stane, tak ho e-mailem informuji, že dojde k vypršení licence

Máme hotové řešení

  • Vytvořím produkt indikátor v administraci e-shopu
  • Klient indikátor koupí a stáhne do počítače
  • Pak importuje do Ninjatradera a vloží do grafu. Indikátor jej vyzve, ať vloží ID počítače do profilu na e-shopu
  • A je hotovo. Nyní může používat indikátor, dokud mu nevyprší licence
  • Každý indikátor může klient použít na dvou počítačích (dva sloty). Další slot si může dokoupit

Krok po kroku

Celý proces licencování indikátoru nezabere víc, než pár minut

I. Vytvoření produktu s indikátorem

Vytvoření produktu s indikátoremDetail produktu s indikátorem

V administraci e-shopu kliknete na Vytvoř produkt. Vyplňte položky, zadejte název archivu s indikátorem.

II. Vyplnění ID počítače v profilu klienta

Pomocí unikátního ID počítače a uživatelského jména se identifikuje indikátor a prověří zda může na daném počítači běžet.

V nastavení indikátoru zadá klient pouze své přihlašovací jménoPro aktivaci indikátoru je nutné zkopírovat Machine ID a vložit do profilu na e-shopuDokud tak neučiní, indikátor je neaktivníStačí dát Ctrl+V (zadat popis zaříení) a uložit. Indikátor se aktivuje a může být používán

III. Implementace validačního kódu do indikátoru

Implementaci validačního kódu do indikátoru provedem zdarma, pokud nejste technicky zdatní.

Jediné co potřebujete, je mít zdrojový kód indikátoru. Do indikátoru přidáme těchto pár řádku a je hotovo.

Přidáme několik proměnných. Jejich význam je za //:

public class TridaIndikatoru : Indicator {
  private ValidateLicense validateLicense;                 // Objekt pro validaci licence
  private string sIndicatorId = "c35d-7d5f-e5de-4154a";    // ID indikátoru z e-shopu
  private const string eshopId = "esh-00000000";           // ID e-shopu, získáte od nás
  private string sUsername;                                // Uživatelské jméno (v eshopu)
  ...

Do nastavení indikátoru přidáme políčko Přihlašovací jméno z e-shopu:

[NinjaScriptProperty]
[Display(ResourceType = typeof(Custom.Resource), Name = "Přihlašovací jméno", Order = 4, Description = "Uživatel, kterého používáte k připojení k webu")]
public string Nickname
  {
    get { return sUsername; }
    set { sUsername = value; }
  }

Nejprve inicializujeme objekt:

validateLicense = new ValidateLicense(eshopId, sIndicatorId, sUsername, this);

A do těla indikátoru přidáme podmínku, pokud je neplatná licence, tak indikátor nefunguje

if (!validateLicense.isValid)
	{
		Draw.TextFixed(this, Name, "Indikátor " + Name + " není aktivován", TextPosition.Center, Brushes.Red, validateLicense.textFontBig, Brushes.Transparent, Brushes.Transparent, 0);
		return;
	}

V celkovém kontextu indikátoru pak umístíme patřičný kód na tato místa:

protected override void OnStateChange() {
  if (State == State.SetDefaults) {
    ...
  } else if (State == State.Configure) {
    // License Validation
    validateLicense = new ValidateLicense(eshopId, sIndicatorId, sUsername, this);
    ...
  }

	...
}

A kód pro otestování, zda je platná licence, bude zde:

protected override void OnBarUpdate() {
  // Pokud není licencován, nebo se nepodařilo inicializovat
  if (!validateLicense.isValid)
  {
    Draw.TextFixed(this, Name, "Indikátor " + Name + " není aktivován", TextPosition.Center, Brushes.Red, validateLicense.textFontBig, Brushes.Transparent, Brushes.Transparent, 0);
    return;
  }
}