Inteligentný alebo hlúpy klient? Tvorba stratégie od začiatku – podrobný návod Vytváranie máp pre ťahovú stratégiu.

Tvorba stratégie
Amatérom sa nedá veriť:
ich plány môžu nečakane vyjsť,
a nikto na to nie je pripravený.

(A. Cuningham)

V predchádzajúcich dvoch číslach sme sa dozvedeli vytvárať jednoduché 2D hry, ovládajte škriatkov, posúvajte hernú obrazovku, sledujte kolízie herných objektov, vytvorte rozhranie (tlačidlá, myš, klávesnicu, textové oblasti) a pracujte v režime celej obrazovky a v režime okna. To všetko sa uskutočnilo pomocou arkádovej hry ako príkladu.

Tentokrát sa od arkádových hier presunieme k „serióznejšiemu“ žánru – stratégiám. Tu si budeme musieť osvojiť celý rad nových mechanizmov, no ani tu nebude nič zložité. V tomto článku sme Poďme študovať štruktúru ťahovej stratégie(a tiež stratégiu v reálnom čase- s LKI-Creator je to ešte jednoduchšie) a ako príklad vytvoríme hru, ktorá je však určená len pre viacužívateľský režim (a tiež editor máp pre ňu). Režimom pre jedného hráča sa budeme zaoberať v ďalšom vydaní našej rubriky – venovanej základy umelej inteligencie.

Keďže je to už tretia lekcia, nebudeme sa rozpisovať všetky príklad kódu - našťastie sa veľa urobilo presne tak, ako v predchádzajúcich dvoch prípadoch. Pre referenciu existuje vzorový program (je v ňom veľa komentárov) a predchádzajúce články.

No, materiály z našich minulých tried nájdete na našej CD, v časti „Hra Urob si sám“ špeciálne vytvorenej na tento účel.

Formulácia problému

Poďme napísať strategickú hru pozostávajúcu z bitky medzi dvoma fantasy armádami. Cieľom bitky je zajať niekoľkých obelisky, umiestnený na mape. Pred bitkou rozmiestňujeme naše jednotky v zložení 6 šermiarov, 4 lukostrelci, 2 rytierov, 2 kúzelníkov a 1 duch, v rámci nám prideleného územia. Okrem nich sú na mape aj neutrálne draci.

Charakteristika bojovníkov
Bojovník Pohyb Hity Rozsah Poškodenie Ochrana Schopnosti
Mečiar4 8 1 7 2 -
Archer4 5 7 5 1 -
Rytier3 15 1 9 4 Uzdravenie, Rytiersky úder
Mág3 12 5 6 0 Ohnivá guľa
Duch4 7 2 5 5 Regenerácia
Drak6 30 2 12 5 Let

Charakteristiky bojovníkov sú uvedené v tabuľke. Liečba- toto je právo vyliečiť susedného bojovníka (okrem ducha) do plného zdravia raz za bitku. Rytiersky úder- právo spôsobiť trojnásobné poškodenie raz za hru. Ohnivá guľa- kúzelnícky útok odstraňuje životy nielen z bezprostredného cieľa, ale aj z okolitých polí. Regenerácia- obnovenie 1 zásahu za kolo. Let- právo pohybovať sa cez prekážky.

Hra sa hrá v režime pre viacerých hráčov, vo verzii Hot Seat (hranie z jedného počítača, striedanie po jednom). Po otočení hráčov prídu na rad neutrálni draci, ktorí zaútočia na akéhokoľvek nepriateľa v okruhu 7 buniek.

Párty končí, keď jedna strana buď zajme viac ako polovicu obeliskov prítomných na mape, alebo úplne zomrie.

Mapa bola pôvodne nastavená v editore máp. Sú tam obelisky, draci a prekážky (predmety, cez ktoré sa nemôžete pohnúť ani zaútočiť).

Príprava na prácu

Skôr ako začneme, budeme musieť balík preinštalovať LKI-Creator. Faktom je, že oproti minulej dobe sa v ňom udialo veľa zmien a doplnkov.

(Dúfam, že Delphi už máte nainštalovaný; ak nie, prečítajte si odporúčania na túto tému v našom predchádzajúcom článku - v júnovom čísle časopisu alebo na CD tohto čísla alebo na webovej stránke.)

To je dôležité: predchádzajúca verzia LKI-Creator mala problémy s kompatibilitou s novými verziami Delphi. V tejto verzii sú odstránené.

Zoberte súbor s textami a obrázkami programu z nášho CD (časť „Hra vlastnými rukami“) a rozbaľte ho do adresára projektu.

Teraz si môžete stiahnuť potrebné súbory odtiaľ .

Mali by sme mať tri podadresáre. One - Units - ukladá knižnice DirectX a moduly balíka LKI-Creator. V inom - Projekte - budeme pracovať; Obrázky, ktoré budeme potrebovať, a predchádzajúca verzia našej arkádovej hry sú tam umiestnené vopred. V treťom – Escort – hotový program, v ktorom by sme mali uspieť.

Teraz nainštalujeme (preinštalujeme) LKI-Creator. V menu Delphi otvorte položku Component a vyberte Install Component. Ak ste už tento balík nainštalovali, zostaňte na karte Do existujúceho balíka, v opačnom prípade prejdite na kartu Do nového balíka a vyplňte prázdne riadky, ako je znázornené na obrázku (v hornom riadku je najjednoduchšie vybrať LKI2dEngine. pas pomocou tlačidla Prehľadávať a v spodnej časti stačí zapísať LKI). Potom kliknite na tlačidlo OK a vyberte možnosť Inštalovať. Teraz by ste mali vidieť kartu LKI na hornom paneli Delphi.

Teraz už len ostáva nahrať náš projekt. V menu Súbor zvoľte Otvoriť, otvorte súbor Project\Obelisk.dpr...

Kde je mapa, Billy? Potrebujeme mapu!

Kým sa však pustíme do veľkých vecí, budeme musieť ešte trochu popracovať na grafickom engine.

V našom predchádzajúcom projekte Star Escort nemala „mapa“ žiadny význam: hviezdy boli umiestnené náhodne a nič neovplyvňovali a poloha iných objektov bola buď špecifikovaná priamo v kóde, alebo bola určená náhodou. Toto nie je vhodné pre každý projekt. To znamená, že je čas, aby sme pridali do nášho motora mapa oblasti.

Pravdepodobne už tušíte, ako to bude vyzerať - do okna projektu umiestnime objekt mapy a potom ho zaregistrujeme do vlastníctva Mapa náš motor.

Je to tak... ale máme viac ako jednu triedu kariet. Poďme sa na to pozrieť bližšie...

Typy kariet

Mapa sa skladá z niečoho krajina A predmety nainštalovaný na ňom. Krajina sa najčastejšie (ale nie vždy) delí na bunky tzv dlaždice- dlaždice.

Ako vieme zo školského kurzu geometrie, rovinu možno bez medzier alebo presahov pokryť pravidelnými mnohouholníkmi troch typov: trojuholník (rovnostranný), štvorec, šesťuholník. Trojuholníkové polia nie sú obzvlášť vhodné, preto sa častejšie používajú štvorcové bunky alebo šesťuholníky.

V istom zmysle je život so štvorcami jednoduchší: ak máme dvojrozmerné pole buniek, hneď je jasné, ako nájsť bunky susediace s danou bunkou. Sú to +1 a -1 pre každý z dvoch indexov. So šesťuholníkmi je všetko trochu komplikovanejšie... ale šesťuholníková doska má veľmi cennú vlastnosť: všetky smery v nej sú rovnaké. V prípade štvorcovej siete to tak nie je: uhlopriečky sa výrazne líšia od vodorovných a zvislých. Preto pre seriózne strategické výpočty môžu byť šesťuholníky lepšie ako štvorce.

Existujú aj karty bez dlaždíc. LKI-Creator podporuje dva typy: graf a patchwork.

Grafická mapa je mapa, na ktorej má význam len niekoľko kľúčových bodov, plus možno špeciálne oblasti (napríklad nepriechodné) a zvyšok je len vzor, ​​ktorý nemá žiadny herný efekt. Takto sa často vytvárajú hviezdne mapy, napríklad v Master of Orion: hviezdy a čierne diery sú kľúčové body, zvyšok je pozadie. V tomto režime niekedy vytvárajú globálne mapy, napríklad pre hru na hranie rolí.

Patchworková mapa je rozdelená na oblasti a vo vnútri oblasti sú všetky body rovnaké. To je dobré pre globálne stratégie, kde provincia predstavuje minimálnu jednotku územia.

Príklady kariet z rôznych hier s uvedením druhu sú na obrázkoch.

Takže väčšina dvojrozmerný mapy (trojrozmerné - špeciálny článok) možno rozdeliť do štyroch tried:

  • Obdĺžnikový- TLKIRectMap. Toto je dlaždicová mapa, bunky sú štvorce. Takáto mapa napríklad v Civilizácii III.
  • Šesťhranné- TLKIHexMap. Kachľová mapa so šesťhrannými bunkami. Používa sa v mnohých vojnových hrách, a nielen: takto sa napríklad tradične vyrábala bojová mapa Heroes of Might & Magic.

    Tieto dva typy kariet sú potomkami všeobecnej triedy TLKITileMap.

  • Graphovaya- TLKIGraphMap. Táto karta má pozadie (vlastnosť pozadia) a kľúčové body na ňom zvýraznené sú statické objekty. Poloha iných objektov na tejto mape je vyjadrená buď obyčajnými súradnicami (ako vesmírna loď v medzihviezdnom priestore) alebo odkazom na objekt (rovnaká loď na obežnej dráhe planéty). Sú to karty Master of Orion, Arcanum (globálne) atď.
  • Zlátanina- TLKIClusterMap. Má vlastnosť pozadia, ako je graf, a druhú vlastnosť - maska, ktorý určuje, ktorý bod patrí do ktorého kraja, a vlastnosť Hranice, ktorý definuje súvislosti medzi „odrezkami“. Takto sú usporiadané mapy napríklad v Medieval: Total War alebo Victoria.

To je dôležité: triedy máp nie sú popísané v module LKI2dEngine, ale v LKI2dMap.

Uhly naklonenia

Ak si ale myslíte, že sa tým vyčerpávajú možnosti LKI-Creator na zobrazovanie máp, tak ste na veľkom omyle.

Mapu je možné prezentovať pohľad zhora alebo izometrický- pozerať sa pod uhlom k vertikále. Napríklad mapa Civilization III alebo Heroes of Might & Magic IV je izometrická, ale Civilizácia I využíva pohľad zhora nadol.

Typicky sa izometria používa pre dlaždicové mapy, zatiaľ čo grafové mapy sa používajú s pohľadom zhora, pretože mierka grafových máp je zvyčajne menšia. Existujú však výnimky: napríklad v Medieval: Total War existuje mozaiková izometrická mapa.

Vlastnosť mapy je zodpovedná za izometriu Izometrický a dva parametre, ktoré nastavujú uhol, pod ktorým sa naša kamera pozerá: Phi A Theta.

Prvý je zodpovedný za rotáciu mapy vzhľadom na vertikálnu os: ak ju napríklad nastavíte na 45 stupňov (meria sa v stupňoch), potom bude obdĺžniková bunka mriežky orientovaná pod uhlom nahor, ako v Civilizácii. . Pri Phi=0 bude jedna zo strán bunky vodorovná.

Druhý ovláda sklon fotoaparátu vzhľadom na vertikálu. Pre pohodlie je uvedený ako pomer horizontálnych a vertikálnych jednotiek dĺžky. Povedzme, že ak chceme, aby naša bunka bola nakreslená na výšku o polovicu menšiu ako na šírku, musíme nastaviť Theta na 2.

Pri kachľovej mape si nesmieme tieto uhly ľubovoľne vyberať: veď (zatiaľ) nemáme 3D. Priamo závisia od parametrov dlaždíc. Napríklad, ak je v tvare diamantu, s uhlom nahor a vertikálna os je polovičná ako horizontálna os, potom musíme nastaviť parametre 45 a 2.

Grafické a patchworkové mapy vám však dávajú právo priradiť tieto parametre, ako chcete (a dokonca, ak si to želáte, zmeniť ich v procese), ale nemali by ste sa tým nechať uniesť - okrem toho, že takéto zákruty prebiehajú veľa času, tiež nevyzerajú veľmi cool. A nezabudnite, že ak je vaša mapa umelecká, s obrázkami, nápismi a pod., tak s ňou zatočí... Vo všeobecnosti je niekedy jednoduchšie nakresliť patchworkovú mapu s prihliadnutím na požadovanú rotáciu – našťastie vzdialenosti často tam nehrajú žiadnu rolu.

Kĺby

Patchworková mapa, pohľad zhora.

Mapy dlaždíc majú ďalší problém - spájanie dlaždíc. Riadi sa parametrom TileBorderStyle. Najčastejšie toto dlaždice Rovno, režim, v ktorom dlaždice jednoducho do seba zapadnú bez akýchkoľvek okrajových efektov, príp tileBorder, v ktorom sú nakreslené čiary oddeľujúce jednu dlaždicu od druhej - hranice buniek (v druhom prípade nezabudnite definovať farba mriežky v parametri TileBorderColor).

Existuje však prefíkanejšia možnosť, keď rovnaké dlaždice susedia bez zmien a iné sa používajú pomocou špeciálnej „prechodnej“ dlaždice. Zvyčajne sa to robí, ak mapa pozostáva hlavne zo širokých plôch jedného typu územia, povedzme veľkých zelených plôch, pričom jednotlivá bunka nie je dôležitá a hráč by si ju nemal všimnúť. Toto je karta Heroes of Might Magic. Ale ak sa každá bunka spracováva samostatne, ako v Civilizácii, potom táto metóda nie je vhodná a je lepšie bunky od seba jasne oddeliť. „Fused“ technológia (nazývaná aj maska) je špecifikovaný hodnotou TileBorderStyle rovnajúcou sa tileMasked. O ich štruktúre si povieme inokedy – ide o pomerne zložitú tému.

Dlaždica

Prvok mapy - objekt triedy TLKITile- má jednoduchú štruktúru. Spočiatku obsahuje: súradnice, sprite, ktorý ho kreslí, kód typu dlaždice (ktorý určuje, čo tu máme – kopec, púšť, cesta, more?) a schopnosť bežeckého lyžovania (toto je relevantné vo väčšine hier). Posledný je počet jednotiek pohybu, ktoré sa vynaložia na pohyb cez túto dlaždicu pôdačata. Pre nepriechodné dlaždice je to záporné číslo.

Ďalší parameter - Objekty, zoznam objektov umiestnených na tejto dlaždici (typ TLKIGameObject).

Ak chcete zistiť, na ktorú bunku ste klikli, mapa má metódu MouseTile(x,y) vrátenie vybranej dlaždice.

Metódy dlaždíc zahŕňajú IsNeighbour(Dlaždice, Vzdialenosť). Táto funkcia vráti hodnotu true, ak sa dlaždica nenachádza ďalej ako vzdialenosť buniek od danej dlaždice (štandardne je tento parameter rovný jednej, to znamená, že ak jednoducho napíšete IsNeighbour(Tile), funkcia vráti hodnotu true pre dlaždicu, ktorá bezprostredne susedí. k danej dlaždici Pre štvorcové mriežky sa za „susedov“ považujú aj dlaždice, ktoré ohraničujú diagonálne.

Funkcie Prvý sused A NextNeighbor sa používajú na kontrolu všetkých buniek susediacich s danou bunkou. Prvý z nich ukazuje na niektorú susednú bunku a na druhú je možné zavolať až po zavolaní prvej a rozdáva ďalších susedov, po jednom.

Vyčíslenie susedov

// Spôsobuje poškodenie bunky

postup TObeliskTile.Damage(dmg: integer);

ak(Počet objektov > 0) a// Môžeme mať

// nie viac ako jeden objekt na bunku

(ID objektov > 0) // Pasívne predmety

// nepoškodené

Dec(Objects.Hits,

// Automaticky odpočítajte ochranu pred poškodením

Max(0,dmg-(Objekty ako TObeliskGameObject).Obrana);

ak Objects.Hitsthen Die; // Odstránime mŕtvych

// Útok ohnivej gule

postup TObeliskTile.Fireball;

var Sused: TObeliskTile;

Neighbor:= FirstNeighbour ako TObeliskTile;

Sused.Škoda(6);

Neighbor:= NextNeighbour ako TObeliskTile;

kým Sused = nula; // Kým nedôjdu susedia

Príklad je na postrannom paneli „Vyčíslenie susedov“. Tento postup vypočíta ohnivú guľu, ktorá zasiahne bunku a všetkých jej susedov.

Toto je zaujímavé: za jej prácu je to uplne jedno, máme šesťhrannú mriežku alebo štvorcovú.

Často potrebujeme nejaké ďalšie parametre a zvyčajne triedu dlaždíc, ktoré tvoria mapu - potomok TLKITile. Takže v príklade - TObeliskTile je zdedený z TLKITile.

To je dôležité: Ak na našu hernú obrazovku prinesieme dlaždicovú mapu, súradnice, ako aj metódy TLKIGameObject súvisiace so vzdialenosťou, štandardne začnú merať vzdialenosť v dlaždiciach a nie v bodoch. Súradnice tlačidiel, ikon atď. pokračovať v meraní v pixeloch! Ale tento režim sa dá vypnúť – to môže byť užitočné pre stratégie v reálnom čase.

Výber karty

Začnime teda pravouhlou mriežkou (TLKIRectMap), izometrickým zobrazením (uhlové parametre 0, 1,5). Nechajte nakresliť mriežku (štýl dlaždiceBorder). Povedzme motoru, že by sa mala zobraziť táto konkrétna mapa. Zatiaľ boli všetky potrebné akcie dokončené bez napísania jediného riadku kódu.

Tieto operácie sa musia vykonať predtým inicializácia motora, ako aj deklarácia písma.

Postavy vyhlásime ako predtým za škriatkov.

Editor máp

Patchworková mapa, izometrická.

Je tu niekoľko ťažkostí. Presne ten istý engine, tie isté deklarácie dlaždíc... Rozhranie, ako je výber dlaždíc, načítanie/ukladanie atď., sa dá jednoducho urobiť pomocou štandardných nástrojov Delphi: nikto nás nenúti prepínať ho do režimu celej obrazovky. Nebudeme to tu analyzovať - ​​všetko je v súbore s ukážkou. Príklad kódu zámerne používa najjednoduchšiu metódu; Ak chcete, môžete napríklad paletu objektov a paletu dlaždíc graficky upraviť.

Editor má len dve funkcie, ktoré sú nám neznáme. Prvá je celkom jednoduchá: je to nová funkcia myši navrhnutá špeciálne pre dlaždicové mapy. Funkcia TLKIRectMap.SelectTile vráti ukazovateľ presne na dlaždicu, na ktorú sa kliklo, takže kliknutie jednoducho zvládneme.

Ale druhý nový produkt si zaslúži dôkladnejšie zváženie.

V skutočnosti existuje mnoho spôsobov, ako doň uložiť údaje a načítať údaje. Zvolili sme metódu zakódovanú v súbore CannonBase. Cannon je nástroj na čítanie a zapisovanie predmetov potomka TCannonObject s kontrolou typu a niektorými ďalšími funkciami.

Pozrime sa na kód („Zápisová karta“).

Vstup na kartu

postup TObeliskMap.Save;

var i,j: celé číslo;

InitSave(FName);

WriteStr(Názov mapy);

Write(Map.Width, SizeOf(Map.Width));

Write(Map.Height, SizeOf(Map.Height));

pre i:=0 do Mapa.Šírka-1 robiť

pre j:=0 do Mapa.Výška-1 robiť

Write(Map.Tiles.Code, SizeOf(integer);

Tu je návod, ako to funguje. Najprv musíte otvoriť súbor pomocou špeciálneho postupu InitSave, ktorého jediným parametrom je názov súboru. Následne uložíme hlavičku pre kontrolu typu pomocou špeciálneho postupu WriteHeader. Potom si pomocou postupu zapíšeme všetko potrebné WriteStr pre reťazce a pre všetky ostatné polia - Napíšte(jeho druhým parametrom je veľkosť zapisovaných dát v bajtoch). Podľa potreby si môžete napísať vlastné procedúry pre polia objektov Uložiť s hlavičkovým záznamom. Nakoniec súbor s postupom zatvoríme FinSave.

Všetky objekty, ktoré majú vlastnú hlavičku, musia byť deklarované samostatne. V kapitole Inicializácia modul (voliteľná časť, ktorá nasleduje Implementácia, ktorý obsahuje príkazy, ktoré je potrebné vykonať na úplnom začiatku, pri spustení programu), by ste mali napísať nasledujúci riadok, napríklad:

RegisterUserName(tpMap, "TObeliskMap");

TpMap je konštanta, ktorú musíte deklarovať aj vy. Prirovnajte to povedzme k 1. A v konštruktore objektu TObeliskMap priraďte hodnotu tejto konštanty parametru TypeID.

Prečo všetok ten rozruch? Okrem zhody typov získate jednu veľmi dôležitú výhodu.

Ak sa formát súboru zmení, povedzme, v dôsledku pridania nových polí, nebudete musieť písať žiadne „konvertory“, ktoré konvertujú staré súbory na nové. Váš kód ich automaticky prečíta.

Tento kód automaticky inicializuje nové pole ako prázdne, ak nie je uložené v súbore. A môžete napísať súbor jednoduchým pridaním riadku WriteStr(Name) na úplný koniec.

komentár: Ak stále nerozumiete, na čo tento proces slúži, nezúfajte. Môžete použiť konvenčnejšie spôsoby nahrávania a ukladania. Ale v skutočne veľkých herných projektoch táto cesta poskytuje významné výhody.

Poďme hrať

Najprv musíme vytvoriť novú triedu odvodenú od TLKIGameObject. Budú nám chýbať vlastnosti starého. V novej triede musíte pridať polia pre hlavné charakteristiky: rozsah, pohyb atď.

To je dôležité: Náš starý parameter rýchlosti zostáva s nami, ale udáva rýchlosť kusu, ktorý sa pohybuje po obrazovke, a nie vzdialenosť, ktorú prejde za otáčku. Ak by sme robili real-time stratégiu, nepotrebovali by sme nový parameter, ale inak ho budeme musieť zaviesť.

Na našej obrazovke použijeme tlačidlá TLKIButton v podobe lukostrelcov, šermiarov, kúzelníkov, duchov, rytierov.

Najprv máme usporiadanie. Definujme zónu umiestnenia pre jednu stranu ako tri horné „čiary“ mapy, pre druhú stranu ako spodné tri „čiary“.

Kód funguje takto. Keď stlačíte niektoré z tlačidiel, aktivuje sa inštalácia zodpovedajúceho bojovníka; Kliknutím na neobsadené políčko v oblasti umiestnenia tam umiestnite figúrku a deaktivujete tlačidlo. Akonáhle sú všetky tlačidlá deaktivované, ťah sa prenesie na nepriateľa.

Na začiatku každého nového pohybu sa opäť zapnú všetky tlačidlá: je to preto, aby si človek ľahšie všimol, na koho sa ešte nepodobal. Podľa toho kliknutím na tlačidlo vyberiete figúrku a akonáhle sa vykoná pohyb, tlačidlo zmizne. Ďalšie tlačidlo – „Koniec odbočenia“ – sa objaví až po fáze umiestňovania.

Minule sme už robili operácie na aktiváciu a deaktiváciu prvkov rozhrania, takže túto operáciu nebudeme podrobne analyzovať - ​​pozrite sa na príklad kódu.

Pohyb kúskov

// Ak je vybraná bunka obsadená nepriateľom, zaútočíme,

// ak je voľný, pohybujeme sa, ak je zaneprázdnený svojimi vlastnými

// alebo prekážka - ignorujte kliknutie

Dlaždica:= Map.MouseTile(MouseX, MouseY);

ak(Dlaždice = nula)// Kliknite mimo herného okna

potom VÝCHOD;

// Sťahovanie

ak(Tile.Objects.Count = 0)

a(Dist(Self)

a nie Presunuté potom

// Pozrime sa, či sa tam dostaneme

ak nie HasWay (dlaždice) potom VÝCHOD;

MoveObj(ID, dlaždice.x, dlaždice.y);

// Hra je ťahová - pohybujte sa okamžite

Presunuté:= true;

//

ak Napadnutý potom

Icon.IsVisible:= falošné;

// Útok

ak(Tile.Objects.Count > 0)

a(Dist(Self)

a nie Napadnutý potom

Obj:= Tile.Objects;

// Útočíme len na nepriateľov

ak Obj.Side = Strana potom VÝCHOD;

Obj.Damage(dmg);

Napadnutý:= pravda;

// Ak je presun dokončený, odstráňte ikonu

ak Presunuté potom

Icon.IsVisible:= falošné;

Ťah sa spracuje nasledovne (pozri „Presun kusu“). Bunka, na ktorú ste klikli, sa nachádza. Ak je na nej nepriateľ a sú v dosahu, je zranený, ak je prázdna a v dosahu, figúrka sa pohne (ak to umožňujú prekážky, ale nie nepriateľom, kliknutie sa ignoruje); .

Keď sa obe strany priblížili, draci konali. Fungujú veľmi jednoducho: vyberú si najbližšieho nedraka, ktorý je od nich v okruhu 7 polí a zaútočia. Pozrite si kód Dragon Actions.

Dračie akcie

// Kontrola dlaždíc do 7 políčok od draka

pre i:= Max(0, x - 7) do Minimálna (maximálna veľkosť, x + 7) robiť

pre j:= Max(0, y - 7) do Min (maximálna veľkosť, y + 7) robiť

if (Map.Tiles.Objects.Count > 0) a

(Map.Tiles.Objects.Code>1)

// 0 - prekážkový kód, 1 - drak

potom začať

// Výber bodu na presun

ak x=i potom sekera:=i

inak ak x>i potom ax:=i+2

inak ax:= i-2;

ak y=j potom ay:=j

inak ak y>j potom ay:= j+2

inak ay:= j-2;

MoveObj(NO, sekera, ay);

// Poďme zaútočiť

Map.Tiles.Damage(12);

// Prerušenie cyklu: nie viac ako jeden útok

// každý drak za kolo

Na záver už ostáva len skontrolovať, či je viac ako polovica obeliskov obsadená jednotkami jednej strany – a ak áno, tak zastavte hru a vyhláste víťaza!


Takže tu máme strategickú hru. K úplnému šťastiu však v prvom rade chýba umelá inteligencia, ktorá umožní dať hre režim pre jedného hráča (nepovažujeme za najjednoduchší postup ovládania drakov). Tak to urobíme nabudúce. Vidíme sa o mesiac!

V budúcich číslach

V nasledujúcich číslach budeme hovoriť o:

  • časticové systémy na zobrazovanie dymu, iskier atď.;
  • pracovať s transparentnosťou;
  • trojrozmerné motory;
  • základy AI;
  • ladenie programu;
  • vytvorenie herného plánu a scenára,
  • písanie projektového dokumentu;
  • herná rovnováha;
  • premýšľanie o herných postavách a ich líniách;
  • práca s Photoshopom a 3D balíkmi;
  • animácie;
  • hudba a hlasové herectvo;
  • a oveľa viac.

Je celkom možné sa naučiť, ako to všetko urobiť vlastnými rukami. Čoskoro to uvidíte.

Napíšte nám…

Pre tých, ktorí si myslia, že balík možno niečím doplniť: po prvé, nezabudnite, že na našom disku dnes ešte nie je finálna verzia balíka, ale iba tá, ktorá implementuje funkcie opísané v našich článkoch. Možno niektoré z vašich nápadov už boli implementované a čakajú, kým na ne príde rad (pozri bočný panel „V budúcich vydaniach“). A v každom prípade: keď nám ponúkate nápad, skúste zdôvodniť, prečo je váš návrh užitočný pre veľa hier naraz, a nielen pre vašu konkrétnu.

Na samostatnú prácu

Počas čakania na ďalšie číslo môžete pracovať na vlastnom projekte, alebo sa môžete pokúsiť vylepšiť tento. Tu je niekoľko nápadov na vlastnú implementáciu:

  • rozdeľte prekážkové predmety na zničiteľné (stromy a kríky) a nezničiteľné (skaly) a uistite sa, že ohnivé gule a dračí dych spália vegetáciu;
  • vytvoriť jamy (hnedá bunka) alebo oheň, ktorý plápolá niekoľko otáčok (červená bunka) na mieste, kde bol spustený požiarny útok;
  • umožniť šermiarom a rytierom kryť svojich susedov a dať im +1 k obrane;
  • aby bol pohyb figúr na obrazovke plynulý.

Čo ak v reálnom čase?

Nie je o nič ťažšie vytvoriť strategickú hru v reálnom čase, ak hráčom dáte rôzne vstupné prostriedky. Najjednoduchší spôsob, ako to urobiť, je cez sieť - o tom budeme hovoriť v jednom z nadchádzajúcich vydaní. Potrebné budú aj tieto zmeny:

  • nie je potrebné žiadne pole Rýchlosť hry v triede TObeliskObject- použite rýchlosť zo základného enginu (rýchlosť pohybu po obrazovke sa rovná rýchlosti hry);
  • celočíselný výpočet vzdialeností je zakázaný;
  • kód pre pohyb postavy je prepísaný, berúc do úvahy skutočnosť, že je potrebné nakresliť trajektóriu okolo prekážok;
  • Tlačidlo "koniec pohybu" je odstránené.

To je všetko. Skúsite to urobiť sami?

Vašu spoločnosť považujem za jednu z najsilnejších na trhu poradenských služieb u nás. Páči sa mi, že sa dotýkate širokého spektra manažérskych problémov a pokrývate ich dostatočne kvalitne a do hĺbky. V publikáciách vašej spoločnosti nachádzam veľa užitočných informácií, pretože je vždy zaujímavé zoznámiť sa so skúsenosťami profesionálov a učiť sa od nich.

Borisyuk Jurij Aleksandrovič, konzultant pre manažment, doktor technických vied

Veľmi sa mi páči séria majstrovských kurzov, ktoré učíte. Osobne, keďže som bol predtým šéfom fabriky, som začal meniť svoje prístupy k manažmentu, vr. vďaka informáciám, ktoré sme od vás dostali. Nejako reagovala na to, čo som robil a pozoroval v továrni. Odvtedy som začal premýšľať o tom, aké neefektívne sú priemyselné kapacity Ruska a aký obrovský je potenciál a ako ho možno realizovať. Keď som sa osobne zoznámil s problémami rôznych podnikov (niekedy ma priatelia pozývajú ako odborníka), vidím, koľko sa dá urobiť, ako zvýšiť efektivitu a efektivitu.

Dryagin Oleg Borisovič

Áno, páčia sa mi tvoje majstrovské kurzy, veľmi systematický prístup, znalosť materiálu na vysokej úrovni a samozrejme veľa praktických skúseností v zvažovanej problematike. Čo ma priťahuje, je to Alexandrova profesionalita a vysoká odborná znalosť témy mi umožňuje pozerať sa na už známe veci inak. Z môjho pohľadu je to tak Je veľmi dôležité a potrebné pozerať sa na veci, ktoré poznáte, novým spôsobom, pretože... Počas chirurgického zákroku sa oko veľmi často „zahmlí“ a prestanete vidieť v skutočnosti zrejmé veci.

Elena Fedash, riaditeľka ľudských zdrojov, ATB Corporation, Dnepropetrovsk.

V tomto článku sa pravdepodobne nedotknem niečoho neznámeho. Všetky výpočty sú jednoduché a zrozumiteľné pre každého, kto vie, čo je Ajax. Už som napísal článok o tom, ako skombinovať klienta so serverom v hrách v reálnom čase (). V tomto článku sa venujem rovnakým problémom, aké sa týkajú ťahových hier.

Takže čo je ťahová hra? Na Wikipédii nájdete nasledujúcu definíciu ťahová stratégia - je žáner počítačových hier, ktorých hlavnou črtou je, že hráči sa v pohyboch striedajú, na rozdiel od stratégií v reálnom čase. Túto definíciu by som trochu zjednodušil:

  • Stratégia krok za krokom - je ťahová strategická hra.
  • Strategická hra - Ide o žáner hier, v ktorých je kľúčom k dosiahnutiu víťazstva plánovanie a strategické myslenie..
  • Ťahová hra - je žáner hier, ktorých hlavnou črtou je, že hráči sa v pohyboch striedajú.
Ťahové hry zahŕňajú:
  • Ťahové stratégie
  • Kartové hry
  • Stolné hry (šach, go, monopol atď.)
Všimol som si, že ťahové hry ukladajú menej obmedzení na zložitosť protokolu interakcie v porovnaní s hrami v reálnom čase. menovite reakčný čas na konkrétnu udalosť nehrá kľúčovú úlohu. Hráč má zvyčajne 10 sekúnd na rozhodnutie. Aj keď je ping obrovský, povedzme 3 sekundy, hráč má stále 7 sekúnd na premýšľanie. Okrem toho môže ping skákať a skákať, ale o to sa vôbec nestaráme (v hrách v reálnom čase táto situácia prakticky zabíja akýkoľvek protokol).

Zvyčajne (v 95 % ťahových hier) rozhoduje v danom čase práve jeden hráč. V dôsledku toho sa počet žiadostí, na ktoré musíme adekvátne reagovať, zužuje.

Preto sa pri tvorbe protokolu zameriame predovšetkým na jednoduchosť jeho implementácie a podpory. To nám umožní dosiahnuť väčší zisk za kratší čas.

Uvedená úvaha vychádza z 2-mesačného vývoja určitej kartovej hry.

Inteligentný alebo hlúpy klient?

Najprv sa rozhodnime, aký „inteligentný“ môže byť náš klient. Rozmýšľam, či sa oplatí duplikovať aplikačnú logiku (pravidlá hry) na klientovi. Server musí byť samozrejme inteligentný, aby zabránil potenciálnemu hacknutiu aplikácie. Oplatí sa však učiť klientovi obchodnú logiku?

To priamo závisí od toho, koľko váži celé množstvo údajov o stave vašej hry. Ak je toto množstvo údajov veľké, trvá dlho, kým sa zhromaždia na serveri a prenesú sa na klienta, potom má zmysel implementovať časť logiky na klienta, aby sa server odbremenil. Napríklad v Civilizácii je miera použitej pamäte vždy mimo tabuliek. Môžete vytvoriť niečo podobné a nechať na klientovi iba používateľské rozhranie?

Na druhej strane, čím šikovnejší klient, tým drahší bude vývoj hry. Dovoľte mi poznamenať, že čas vývoja servera v žiadnom prípade nezávisí od erudície klienta. Aj keď je klient super-duper-mega inteligentný, ak chce používateľ znova načítať okno prehliadača, server bude musieť zhromaždiť a zostaviť všetky údaje o hre, aby ich mohol preniesť klientovi. A la "Načítanie uloženej hry". Záver: Inteligentný klient môže zrýchliť aplikáciu, ale vždy si bude vyžadovať dodatočné zdroje na vývoj aplikácie.

Navrhujem nasledovné testovať:

1. Umožňuje hlasitosť kanála?

Odhadnite priemernú váhu celého množstva údajov o stave hry. Ďalej vynásobte priemerným počtom požiadaviek na server za sekundu. Ak prijaté číslo presahuje kapacitu odchádzajúceho dátového kanála, potom je hlúpy klient neprijateľný. Ak toto číslo presiahne 20% odchádzajúceho kanála, mali by ste premýšľať o tom, či to bude fungovať?

2. Je to náročné na prácu?

Odhadnite zložitosť algoritmu zberu herných údajov (v zlomkoch sekundy). Tu berte do úvahy všetky dotazy do databázy. Ďalej vynásobte priemerným počtom požiadaviek na server za sekundu. Ak čas presiahne jednu sekundu, potom je hlúpy klient neprijateľný. Ak toto číslo presiahne 200 ms, potom by ste sa mali zamyslieť, či to vydrží?

Pokračovanie:

V dnešnej dobe sa dá ľahko nájsť množstvo obchodných stratégií, problém je len v tom, že väčšina z nich buď nefunguje, alebo nie je dostatočne efektívna. V takejto situácii je vytvorenie stratégie od začiatku výborným riešením problému.

A hoci v každej konkrétnej situácii bude vytvorenie vozidla iné, hlavné fázy zostávajú rovnaké. To znamená, že môžete vytvoriť niečo ako univerzálny návod, ktorý postupne prechádza všetkými fázami a na konci dostaneme úplne funkčný systém.

Aj keď zvážime možnosť vytvorenia stratégie od nuly, počnúc nápadom a končiac zavedením filtra a finálnym vývojom vozidla, neznamená to, že všetky hotové systémy treba hneď zahodiť ako zjavne neefektívne . Ako základ možno použiť niekoľko TS a jednoducho pridať niekoľko filtrov, aby sa odstránili falošné signály.

Hlavné fázy tvorby stratégie

Ak náhodne vezmete 5-7 indikátorov a pokúsite sa z nich vytvoriť funkčné vozidlo, je nepravdepodobné, že vyjde niečo užitočné. Najprv musíte premyslieť hlavnú myšlienku stratégie a až potom prejsť na výber nástrojov. Je možné navrhnúť nasledujúcu postupnosť akcií:

  • ak je systém vytvorený od nuly, potom prvým krokom je pracovať na myšlienke. V tejto fáze sa stačí rozhodnúť, aký bude váš obchodný štýl, napríklad, či sa transakcie budú vykonávať pozdĺž trendu alebo proti nemu, alebo možno je stratégia plánovaná výlučne na prelomenie. O konkrétnostiach zatiaľ neuvažujeme;
  • Po výbere vhodného obchodného štýlu môžete začať pracovať na detailoch. Pred výberom nástrojov musíte jasne určiť pracovné menové páry a časové rámce, čas obchodovania atď.;

Dôležité! Pri výbere časového rámca nie je vhodné ísť príliš do úzadia, najmä ak obchodník nemá skúsenosti so špekuláciami na malé časové intervaly. Pre začiatočníkov je vo všeobecnosti lepšie neklesnúť pod H1-H4, môžete si prečítať viac o výbere optimálneho časového intervalu.

  • ďalšou fázou je výber vhodných nástrojov a tu môže veľký výber zahrať na obchodníka krutý vtip, pretože má k dispozícii desiatky indikátorov, schopnosť používať sviečkovú, vlnovú, technickú a fundamentálnu analýzu. Z celej tejto rozmanitosti si musíte vybrať niekoľko nástrojov, ktoré najlepšie vyhovujú vášmu zamýšľanému obchodnému štýlu;
  • Jedným z hlavných pravidiel každej stratégie je, že prijatý signál musí byť potvrdený viacerými filtrami, no je vhodné obmedziť ich počet. Napríklad v prípade stratégií ukazovateľov je nežiaduce, aby počet ukazovateľov prekročil 3 – 4, inak dôjde k zmätku v signáloch a ak plánujete pracovať pomocou technickej analýzy, ukazovatele budú hrať podpornú úlohu;
  • sú vyvinuté pravidlá pre podporu pozície, výsledkom by mal byť algoritmus akcií pre akýkoľvek scenár;
  • posledná fáza je spustiť vozidlo najprv na historickom účte a potom na demo účte, alebo ešte lepšie, na skutočnom centovom účte. Hlavným cieľom je otestovať životaschopnosť stratégie v reálnych podmienkach a reálny účet (aj cent) vám umožní precítiť celú škálu emócií, od eufórie až po horkosť prehier.

Môžete tiež odporučiť, aby ste sa nezaoberali zložitosťou vozidla. Prax ukazuje, že prílišná zložitosť vôbec nie je ukazovateľom účinnosti. Čím je systém jednoduchší, tým ľahšie sa s ním obchoduje.

Čo by malo byť súčasťou vozidla?

Vytváranie stratégie je trochu ako stavebnica, stačí si vybrať tie správne diely. Pri vytváraní vozidla môžete a mali by ste použiť:

  • ukazovatele. Navyše by ste nemali naháňať ich počet alebo nadmernú zložitosť, dokonca aj v plne mechanických vozidlách stačí 3-5 kusov;
  • grafické vzory - známe vlajky, vlajočky, trojuholníky, hlava a ramená, dvojité spodky a vrchy stále dobre fungujú;
  • grafické konštrukcie;
  • Fibo hladiny;
  • prvky fundamentálnej analýzy - teraz je ťažké zarobiť peniaze len na správach, ale je potrebné brať do úvahy ekonomický kalendár v obchodovaní. Stačí aspoň posunúť transakcie na prahovú hodnotu pred zverejnením dôležitých štatistík pre USA či Európu, alebo dokonca úplne uzavrieť zisk.

Existuje tiež množstvo techník, ktorých výhody sú sporné:

  • Martingale je spočiatku nerentabilná taktika, jedinou šancou na úspech je, že pred stratou sa vám podarí získať späť sumu vkladu a trochu zarobiť;

  • Je tiež nežiaduce používať uzamykanie, pokiaľ to nie je absolútne nevyhnutné, potom je dosť ťažké opustiť hrad;
  • Tiež je lepšie nepoužívať signály zvonku. Signály zvonku znamenajú napríklad porovnanie počtu predajcov/kupujúcich, rôzne indexy nálad väčšiny obchodníkov a pod. Existuje však aj množstvo zdrojov, ktoré si môžete vypočuť, napríklad Autochartist dáva dobré signály na základe grafických vzorov;
  • Je tiež lepšie nepoužívať prvky analýzy vĺn (aspoň pre začiatočníkov). Aj keď tu existujú výnimky, napríklad obchodovanie na Wolfe Waves je založené presne na vlnovej analýze, ale nie je obzvlášť zložité.

Vypracovanie jednoduchej indikátorovej stratégie

Predpokladajme, že hlavnou myšlienkou stratégie je obchodovať výlučne v smere trendu. Navyše na trh nevstúpite v momente vzniku trendu, čo je dosť riskantné, ale po dokončení malej korekcie.

Stratégia by mala fungovať na takmer akomkoľvek menovom páre, čo je nevyhnutné, pretože kvôli veľkému časovému rámcu sa signály nebudú vyskytovať príliš často. Takže situácia bude hodnotená pomocou 5-7 menových párov súčasne. Pokiaľ ide o časový rámec, D1 je vhodný, vychádzame zo skutočnosti, že Forex je v počiatočnej fáze iba doplnkom k hlavnej práci, preto budeme obchodovať na denných sviečkach.

Teraz sa musíte rozhodnúť, ako presne sa určí okamih vstupu. Existuje mnoho možností na identifikáciu trendu:

  • vizuálne - ale pozorovanie vám nedovolí vytvoriť jasné pravidlá obchodovania;
  • použitie jedného alebo viacerých kĺzavých priemerov;
  • podľa hodnoty ukazovateľa ADX, ak je viac ako 30, potom je silný trend, menej ako 20, trh je pokojný;
  • používanie grafických konštrukcií;
  • Bollinger Bands vám umožňuje posúdiť silu trendu podľa vzdialenosti medzi hornou a dolnou hranicou kanála.

Vo všeobecnosti existuje veľa možností, ale keďže stratégia musí byť čo najjednoduchšia, zameriame sa na kĺzavé priemery. Alebo skôr jedno MA, budeme posudzovať smer trendu podľa pozície ceny voči nej. Môžete začať s obdobiami, ktoré priemerujú cenu za celé časové obdobie (týždeň, mesiac, štvrťrok atď.), napríklad 20 bude priemerom ceny za posledný mesiac. Najťažšie je vybrať si vhodné obdobie MA, ale tu budete musieť postupovať metódou pokus-omyl.

Hlavná myšlienka obchodovania bude nasledovná: počkáme, kým sa objaví trendový pohyb, potom nasleduje korekcia do jedného dňa, po jej skončení sa uzavrie obchod. Ak je toto všetko prezentované vo forme jasných pravidiel, algoritmus akcií bude vyzerať takto (na príklade nákupov):

  • najprv skontrolujeme cenovú pozíciu vzhľadom na MA, cena by mala byť nad čiarou;
  • Ďalej musíme nájsť trendový pohyb, potrebujeme sviečku s veľkým telom a malými tieňmi (je vhodné, aby hodnota tieňa nepresahovala 10-15% veľkosti tela sviečky);
  • mala by nasledovať sviečka s malým denným rozsahom (vzdialenosť od High po Close). Close cena by nemala dosiahnuť úroveň 50% predchádzajúceho dňa - v tento deň nastáva korekcia ceny.

V tomto prípade môže dôjsť k náprave podľa 2 scenárov:

  • Keď sa vytvorí sviečka s dlhým tieňom pod ňou, môžete okamžite otvoriť obchod na konci dňa. Tento tvar sviečky naznačuje, že korekcia už bola dokončená;
  • možná možnosť je, keď sa korekčná sviečka uzavrie na minime, t.j. rollback ešte nie je dokončený, v tomto prípade musíte počkať, kým sa zatvorí ďalšia sviečka, ak je biela, môžete otvoriť dlhú pozíciu.

Čo sa týka udržania pozície a ochranných príkazov, stop loss by mal byť umiestnený aspoň za stred sviečky s veľkým telom. Na získanie cieľovej úrovne stačí odložiť hodnotu tej istej sviečky z úrovne nákupu, môžete použiť trailing stop.

Pravidlá stratégie sú sformované, ostáva už len otestovať ju v praxi. Prax ukazuje, že aj takýto jednoduchý algoritmus produkuje viac ako polovicu ziskových obchodov (a ak obchod predčasne presuniete na nulu, pravdepodobnosť straty sa zníži).

Vstup na začiatku trendu

Vyššie navrhovaný TS míňa časť trendového pohybu, ale nevyžaduje si veľa času na analýzu trhu. Ak je možné sledovať správanie sa ceny dňa, potom sa môžete pokúsiť jazdiť na trende na samom začiatku jeho formovania. Hlavnou myšlienkou stratégie je teda vstúpiť na trh potom, čo cena začne opúšťať horizontálny kanál.

A tu je veľmi dôležité prijímať spoľahlivý signál včas, na samom začiatku trendu. Na pomoc môžu opäť prísť kĺzavé priemery, ktoré sa však použijú trochu inak ako v predchádzajúcej stratégii. Môžete si vziať niekoľko MA s rôznymi obdobiami a posúdiť vznik trendu podľa ich vzájomného umiestnenia.

Nie je to revolučný prístup, Bill Williams použil niečo podobné vo svojom slávnom Aligátorovi. Takže tento ukazovateľ možno dokonca považovať za základ TS.

Ak k H1 pridáme Alligator so štandardnými nastaveniami, vidíme, že to dáva veľa falošných signálov, našou úlohou je ich vyradiť. Za týmto účelom vstúpime na trh s čakajúcou objednávkou a úroveň jej umiestnenia sa určí pomocou fraktálov.

V dôsledku toho bude pracovný tok vyzerať takto (na príklade nákupov):

  • Hľadáme rovnú oblasť na mape (všetky línie Aligátora sú navzájom chaoticky prepletené);
  • Ďalej potrebujete fraktálnu sviečku (a mala by byť umiestnená nad čiarami bez toho, aby ste sa ich dotkli spodným tieňom);
  • príkaz buy stop je umiestnený tesne nad jeho maximom a ochranný príkaz je umiestnený za spodnou hranicou konsolidačnej zóny;
  • TP je buď pevná (50-70 p), alebo použiť zarážku. Vo všeobecnosti je dosť ťažké predpovedať silu trendového pohybu, takže je lepšie použiť trailing stop ako pevný TP alebo určiť cieľovú úroveň pomocou rovnakej technickej analýzy.

V tomto príklade nejde o vývoj stratégie od nuly, ale skôr o mierne prispôsobenie už známej stratégie modernému trhu.

Príklad jednoduchého kombinovaného systému

Myšlienka je stále rovnaká - zápis na konci opravy, ale tento problém vyriešime iným spôsobom. Cieľ zostáva rovnaký – určiť moment dokončenia korekcie a vstúpiť v smere trendu, ale ak sme predtým používali kĺzavý priemer, teraz použijeme Fibo úrovne a oscilátor na určenie dokončenia rollbacku.

Bude nás zaujímať výrazný trendový pohyb, dá sa určiť aj vizuálne. Potom naň stačí natiahnuť úrovne Fibo, je to potrebné na určenie potenciálnych úrovní na dokončenie korekcie. Najvýraznejšia úroveň korekcie je 38,2%, je povolené obchodovať pri odrazoch od 50% a 61,8%.

Ale fakt, že sa cena dotýka úrovne Fibo, nestačí. Stochastic si s touto úlohou celkom dobre poradí (na rovnaký účel môžete skúsiť použiť RSI). Napríklad pri nákupnej transakcii musí byť cena blízko korekčnej úrovne a Stochastic v tom čase musí byť v zóne prepredania.

Keď sa cena dotkne úrovne, počkáme, kým Stochastic opustí prepredanú zónu a nakúpi. Zarážka môže byť umiestnená za nasledujúcou úrovňou korekcie a TP môže byť umiestnený aspoň na nedávnej vysokej úrovni pred začiatkom stiahnutia.

Úrovne Fibo a oscilátor sú len minimum potrebné na príjem signálu. V prípade potreby môžete systém skomplikovať zavedením ďalších filtrov.

Stratégie založené na technickej analýze

Ak sa technická analýza použije v čistej forme, potom už nie je potrebné vyvíjať vozidlo od začiatku. Existuje množstvo techník a nástrojov, ktorých účinnosť je rokmi overená a obchodník si môže vybrať len tie vhodné a použiť ich pri stavbách.
V zásade na úspešné obchodovanie stačí:

  • trendové línie - staviame ich na rôznych časových rámcoch, počnúc najvyšším a postupne klesajúcim k pracovnému;
  • Fibo úrovne, mali by byť natiahnuté na významné cenové pohyby v histórii. Úrovne korekcie 38,2, 50 a 61,8 % budú mať kľúčový význam, prax ukazuje, že korekcia sa najčastejšie končí pri týchto známkach;
  • MT4 tiež implementuje množstvo ďalších nástrojov technickej analýzy, napríklad Andrews pitchforks, sadu nástrojov Gann, niekoľko typov kanálov atď.

Ale pre celkom presnú predpoveď stačia Fibo úrovne a trendové čiary oblasti koncentrácií úrovní a čiar zvyčajne fungujú ako podpora/odpor. Obchodovanie sa môže uskutočňovať ako pre únik, tak aj pre odraz z úrovní a línií.

Pokiaľ ide o ďalšie filtre, môžete pridať vzory sviečok a nejaký druh indikátora na vyhľadávanie divergencií (rovnaký Stochastic alebo MACD). Môžete si prečítať viac o použití technickej analýzy.

Filtre pre obchodné systémy

Akýkoľvek obchodný nástroj, aj keď nápad funguje a obchodovanie je vo všeobecnosti ziskové, generuje veľa signálov a niektoré z nich sú nerentabilné. Po vytvorení systémových pravidiel môžete použiť množstvo univerzálnych filtrov, ktoré pomôžu zlepšiť pomer ziskových/neziskových transakcií.

Existuje množstvo filtrov, ktoré vyhovujú takmer každej stratégii:

  • situáciu vo vyšších časových rámcoch. Ak sa napríklad stratégia vykonáva na H1 podľa mechanickej stratégie, potom by nebolo zlé pozrieť sa na to, čo sa deje na H4 a D1;
  • priemerný denný rozsah, čo znamená vzdialenosť, ktorú cena prejde v priemere za deň pri intradennom obchodovaní, pomôže to filtrovať množstvo signálov. Predstavme si, že počas dňa sa cena pohybuje v priemere 100-120 pips, ak v jeden z dní cena do večera už prekročila 90-100 pips jedným smerom a TS dáva signál na vstup na trh v rovnakým smerom, potom má zmysel ho ignorovať , štatistiky hovoria, že v tento deň pravdepodobne nebude pokračovať premávka;

Dôležité! Dodržiavanie tohto pravidla povedie k tomu, že niektoré ziskové obchody budú vynechané, ale pomer ziskových/stratových obchodov sa zvýši.

  • Počet sviečok po vytvorení signálu je tiež dôležitý; existuje dokonca filter 5 sviečok, ktorému sa budeme venovať podrobnejšie.

Keď TS vydá signál, v ideálnom prípade by sa situácia mala začať vyvíjať v náš prospech takmer okamžite po uzavretí transakcie (rozumej na ďalších 1-3 sviečkach). Ak sa tak nestane, čím viac času uplynulo od uzavretia transakcie, tým menší vplyv na trh budú mať tie faktory, na ktorých záležalo, keď obchodník vstúpil na trh. Ich vplyv sa časom vytráca.

Ako kritérium si môžete vziať 5 sviečok, ak sa po uzavretí obchodu cena pri 5 sviečkach neposunula ziskovým smerom, potom je lepšie uzavrieť obchod manuálne. To znamená scenár, v ktorom graf zostáva na svojom mieste, ale ak cena prešla na nerentabilnú stranu, tento filter sa nepoužije.

Táto podmienka platí takmer pre všetky časové rámce (s výnimkou m1-m5). Samozrejme, stále existuje možnosť, že cena, ktorá sa bude pohybovať okolo jednej značky, sa bude pohybovať správnym smerom, ale našou voľbou je stabilita. Je lepšie obetovať pár ziskových obchodov, ale vyhnúť sa 3-5 nerentabilným.

Zhrnutie

Začať pracovať bez obchodného systému je ako smrť, toto by si mal zapamätať každý obchodník. V tomto prípade je strata vkladu len otázkou času.

Výber vhodného vozidla nie je náročný, navyše dobre fungujúce systémy nájdete vo verejnej sfére. Postarať sa môžete aj o vytvorenie vlastnej stratégie, o to viac, že ​​táto nevyžaduje znalosť programovacích jazykov, stačí mať predstavu a aspoň základné znalosti o tom, ako trh funguje a aké ukazovatele sa na aké účely používajú.

Samotný proces pripomína zostavenie stavebnice – najskôr nastavíme problém a potom jednoducho vyberieme potrebné nástroje na jeho vyriešenie. Po skontrolovaní histórie môžete prejsť na test TS na demo alebo centovom účte.



 

Môže byť užitočné prečítať si: