ჭკვიანი თუ სულელი კლიენტი? სტრატეგიის შექმნა ნულიდან - დეტალური სახელმძღვანელო რუქების შექმნა მორიგეობით დაფუძნებული სტრატეგიისთვის.

სტრატეგიის ფორმირება
თქვენ არ შეგიძლიათ ენდოთ მოყვარულებს:
მათი გეგმები შეიძლება მოულოდნელად განხორციელდეს,
და არავინ არ არის მზად ამისთვის.

(ა. კუნინგჰემი)

წინა ორ ნომერში ვისწავლეთ მარტივი 2D თამაშების გაკეთებააკონტროლეთ სპრაიტები, გადაახვიეთ თამაშის ეკრანზე, თვალყური ადევნეთ თამაშის ობიექტების შეჯახებას, შექმენით ინტერფეისი (ღილაკები, მაუსი, კლავიატურა, ტექსტის არეები) და იმუშავეთ სრულ ეკრანზე და ფანჯრის რეჟიმში. ეს ყველაფერი გაკეთდა მაგალითად არკადული თამაშის გამოყენებით.

ამჯერად არკადული თამაშებიდან გადავალთ უფრო „სერიოზულ“ ჟანრზე - სტრატეგიებზე. აქ მოგვიწევს ახალი მექანიზმების მთელი რიგის დაუფლება, მაგრამ აქაც არაფერი იქნება რთული. ამ სტატიაში ჩვენ შევისწავლოთ მორიგეობით დაფუძნებული სტრატეგიის სტრუქტურა(და ასევე რეალურ დროში სტრატეგია- კიდევ უფრო ადვილია ამის გაკეთება LKI-Creator-ით) და ჩვენ გავაკეთებთ თამაშს, როგორც მაგალითად, შექმნილი, თუმცა, მხოლოდ მრავალ მომხმარებლისრეჟიმი (და ასევე რუქის რედაქტორიმისთვის). ერთი მოთამაშის რეჟიმს შევეხებით ჩვენი რუბრიკის შემდეგ ნომერში - მიძღვნილი ხელოვნური ინტელექტის საფუძვლები.

ვინაიდან ეს უკვე მესამე გაკვეთილია, დეტალებს არ შევეხებით ყველაკოდის მაგალითი - საბედნიეროდ, ბევრი რამ გაკეთდა ზუსტად ისე, როგორც წინა ორჯერ. ცნობისთვის არის სამაგალითო პროგრამა (მასში ბევრი კომენტარია) და წინა სტატიები.

კარგად, თქვენ შეგიძლიათ იპოვოთ მასალები ჩვენი წარსული გაკვეთილებიდან CD, სპეციალურად ამ მიზნით შექმნილ განყოფილებაში “Do it yourself თამაში”.

პრობლემის ფორმულირება

მოდით დავწეროთ სტრატეგიული თამაში, რომელიც შედგება ორ ფანტასტიკურ არმიას შორის ბრძოლისგან. ბრძოლის მიზანი რამდენიმეს ხელში ჩაგდებაა ობელისკები, განთავსებულია რუკაზე. ბრძოლის წინ ჩვენ განვათავსებთ ჩვენს ჯარს, რომელიც შედგება 6-ისგან ხმლების მებრძოლები, 4 მშვილდოსნები, 2 რაინდები, 2 ჯადოქრებიდა 1 მოჩვენება, ჩვენთვის გამოყოფილ ტერიტორიაზე. მათ გარდა რუკაზე არის ნეიტრალურიც დრაკონები.

მებრძოლების მახასიათებლები
მებრძოლი მოძრაობა ჰიტები Დიაპაზონი დაზიანება დაცვა შესაძლებლობები
ხმლის მებრძოლი4 8 1 7 2 -
მშვილდოსანი4 5 7 5 1 -
რაინდი3 15 1 9 4 სამკურნალო, რაინდის დარტყმა
მაგის3 12 5 6 0 ცეცხლოვანი ბურთი
მოჩვენება4 7 2 5 5 რეგენერაცია
Დრაკონი6 30 2 12 5 Ფრენა

მებრძოლების მახასიათებლები მოცემულია ცხრილში. მკურნალობა- ეს არის უფლება განკურნოს მეზობელი მეომარი (გარდა მოჩვენებისა) სრულ ჯანმრთელობაზე ერთხელ ბრძოლაში. რაინდის დარტყმა- სამმაგი ზიანის მიყენების უფლება თამაშში ერთხელ. ცეცხლოვანი ბურთი- ჯადოქრის შეტევა აშორებს დარტყმის წერტილებს არა მხოლოდ უშუალო სამიზნედან, არამედ მიმდებარე მოედნიდანაც. რეგენერაცია- 1 დარტყმის აღდგენა თითო ბრუნზე. Ფრენა- დაბრკოლებებზე გადაადგილების უფლება.

თამაში ითამაშა მულტიმოთამაშის რეჟიმში, Hot Seat ვერსიაში (თამაში ერთი კომპიუტერიდან, ტრიალებს ერთ ჯერზე). მას შემდეგ, რაც მოთამაშეები შემობრუნდებიან, ნეიტრალური დრაკონები ასრულებენ თავის მხრივ, თავს ესხმიან ნებისმიერ მტერს 7 უჯრედის რადიუსში.

წვეულება მთავრდება, როდესაც ერთი მხარე ან დაიჭერს რუკაზე არსებული ობელისკების ნახევარზე მეტს ან მთლიანად მოკვდება.

რუკა თავდაპირველად დაყენებული იყო რუკის რედაქტორში. აქ არის ობელისკები, დრაკონები და დაბრკოლებები (ობიექტები, რომლებშიც ვერ გადაადგილდებით და ვერ შეტევთ).

სამუშაოსთვის მზადება

სანამ დავიწყებთ, დაგვჭირდება პაკეტის ხელახლა ინსტალაცია LKI-შემქმნელი. ფაქტია, რომ შარშანდელთან შედარებით მასში ბევრი ცვლილება და დამატება განხორციელდა.

(Ვიმედოვნებ, რომ დელფითქვენ უკვე დააინსტალირეთ; თუ არა, მაშინ წაიკითხეთ რეკომენდაციები ამ თემაზე ჩვენს წინა სტატიაში - ჟურნალის ივნისის ნომერში ან ამ ნომრის CD-ზე ან ვებსაიტზე.)

Ეს არის მნიშვნელოვანი: LKI-Creator-ის წინა ვერსიას ჰქონდა გარკვეული თავსებადობის პრობლემები Delphi-ს ახალ ვერსიებთან. ამ ვერსიაში ისინი აღმოფხვრილია.

აიღეთ ფაილი პროგრამის ტექსტებითა და სურათებით ჩვენი CD-დან (განყოფილება „თამაში საკუთარი ხელით“) და გახსენით იგი პროექტის დირექტორიაში.

ახლა თქვენ შეგიძლიათ ჩამოტვირთოთ საჭირო ფაილები აქედან .

სამი ქვედირექტორი უნდა გვქონდეს. One - Units - ინახავს DirectX ბიბლიოთეკებს და LKI-Creator პაკეტის მოდულებს. მეორეში - პროექტში - ვიმუშავებთ; სურათები, რომლებიც დაგვჭირდება და ჩვენი არკადული თამაშის წინა ვერსია წინასწარ არის განთავსებული. მესამეში - Escort - მზა პროგრამა, რომელიც უნდა მივაღწიოთ წარმატებას.

ახლა მოდით დავაინსტალიროთ (ხელახლა დააინსტალიროთ) LKI-Creator. Delphi მენიუში გახსენით კომპონენტი და აირჩიეთ Install Component. თუ თქვენ უკვე დააინსტალირეთ ეს პაკეტი, დარჩით Into არსებული პაკეტის ჩანართზე, წინააღმდეგ შემთხვევაში გადადით ჩანართზე Into new პაკეტი და შეავსეთ ცარიელი ხაზები, როგორც ეს ნაჩვენებია სურათზე (ზედა ხაზში ყველაზე მარტივი გზაა აირჩიოთ LKI2dEngine. pas ფაილი Browse ღილაკის გამოყენებით და ბოლოში უბრალოდ ჩაწერეთ LKI). შემდეგ დააჭირეთ OK და აირჩიეთ Install. ახლა თქვენ უნდა ნახოთ LKI ჩანართი Delphi-ს ზედა პანელში.

ახლა რჩება მხოლოდ ჩვენი პროექტის ატვირთვა. ფაილის მენიუში აირჩიეთ გახსნა, გახსენით ფაილი Project\Obelisk.dpr...

სად არის რუკა, ბილი? ჩვენ გვჭირდება რუკა!

თუმცა, სანამ დიდ საქმეებს შევეხებით, ცოტა მეტი უნდა ვიმუშაოთ გრაფიკულ ძრავზე.

Star Escort-ში, ჩვენს წინა პროექტში, „რუქას“ არავითარი მნიშვნელობა არ ჰქონდა: ვარსკვლავები მოთავსებული იყო შემთხვევით და არაფერზე არ ახდენდა გავლენას, ხოლო სხვა ობიექტების პოზიცია ან პირდაპირ კოდში იყო მითითებული, ან შემთხვევით განსაზღვრული. ეს არ არის შესაფერისი ყველა პროექტისთვის. ეს ნიშნავს, რომ დროა დავამატოთ ჩვენი ძრავა ტერიტორიის რუკა.

ალბათ უკვე გამოიცანით როგორი იქნება - პროექტის ფანჯარაზე ვათავსებთ რუკის ობიექტს, შემდეგ კი დავარეგისტრირებთ საკუთრებაში რუკაჩვენი ძრავა.

ასეა... მაგრამ ჩვენ გვაქვს ერთზე მეტი კლასის ბარათი. მოდით უფრო ახლოს მივხედოთ...

ბარათების სახეები

რუკა შედგება რაღაცისგან პეიზაჟიდა ობიექტებიმასზე დაყენებული. ლანდშაფტი ყველაზე ხშირად (მაგრამ არა ყოველთვის) იყოფა უჯრედებად ე.წ ფილები- ფილები.

როგორც სასკოლო გეომეტრიის კურსიდან ვიცით, სიბრტყე შეიძლება დაიფაროს ხარვეზების ან გადახურვის გარეშე სამი ტიპის რეგულარული მრავალკუთხედებით: სამკუთხედი (ტოლგვერდა), კვადრატი, ექვსკუთხედი. სამკუთხა ველები არ არის განსაკუთრებით მოსახერხებელი, ამიტომ უფრო ხშირად გამოიყენება კვადრატული უჯრედები ან ექვსკუთხედები.

გარკვეული გაგებით, კვადრატებით ცხოვრება უფრო ადვილია: თუ ჩვენ გვაქვს უჯრედების ორგანზომილებიანი მასივი, მაშინვე გასაგებია, თუ როგორ უნდა ვიპოვოთ მოცემული უჯრედის მიმდებარე უჯრედები. ეს არის +1 და -1 თითოეული ორი ინდექსისთვის. ექვსკუთხედებთან ყველაფერი ცოტა უფრო რთულია... მაგრამ ექვსკუთხა დაფას აქვს ძალიან ღირებული თვისება: მასში ყველა მიმართულება ერთნაირია. კვადრატული ბადე ასე არ არის: დიაგონალები მნიშვნელოვნად განსხვავდება ჰორიზონტალურიდან და ვერტიკალისგან. ამიტომ, სერიოზული სტრატეგიული გამოთვლებისთვის, ექვსკუთხედები შეიძლება უკეთესი იყოს ვიდრე კვადრატები.

ასევე არის არაკრამიტიანი ბარათები. LKI-Creator მხარს უჭერს ორ ტიპს: გრაფიკს და პაჩვორკს.

გრაფიკული რუკა არის რუკა, რომელზედაც მხოლოდ რამდენიმე საკვანძო პუნქტს აქვს მნიშვნელობა, პლუს, შესაძლოა, სპეციალური უბნები (მაგალითად, გაუვალი ადგილები), დანარჩენი კი მხოლოდ ნიმუშია, რომელსაც თამაშის ეფექტი არ აქვს. ასე კეთდება ხოლმე ვარსკვლავური რუქები, მაგალითად, ორიონის ოსტატში: ვარსკვლავები და შავი ხვრელები საკვანძო წერტილებია, დანარჩენი ფონი. ამ რეჟიმში ისინი ზოგჯერ ქმნიან გლობალურ რუკებს, მაგალითად, როლური თამაშისთვის.

პაჩვორკის რუკა დაყოფილია ზონებად და ტერიტორიის შიგნით ყველა წერტილი ერთნაირია; ეს კარგია გლობალური სტრატეგიებისთვის, სადაც პროვინცია არის ტერიტორიის მინიმალური ერთეული.

ბარათების მაგალითები სხვადასხვა თამაშებიდან, ტიპის მითითებით, მოცემულია სურათებში.

ასე რომ უმრავლესობა ორ განზომილებიანირუქები (სამგანზომილებიანი - სპეციალური სტატია) შეიძლება დაიყოს ოთხ კლასად:

  • მართკუთხა- TLKIRectMap. ეს არის კრამიტიანი რუკა, უჯრედები არის კვადრატები. ასეთი რუკა, მაგალითად, ცივილიზაცია III.
  • ექვსკუთხა- TLKIHexMap. კრამიტით მოპირკეთებული რუკა ექვსკუთხა უჯრედებით. გამოიყენება ბევრ Wargames-ში და არა მარტო: ასე, მაგალითად, ტრადიციულად მზადდებოდა Heroes of Might & Magic საბრძოლო რუკა.

    ეს ორი ტიპის კარტი არის ზოგადი კლასის შთამომავლები TLKITileMap.

  • გრაფოვაია- TLKIGraphMap. ამ ბარათს აქვს ფონი (ფონური თვისება)და მასზე ხაზგასმული ძირითადი პუნქტები სტატიკური ობიექტებია. სხვა ობიექტების პოზიცია ამ რუკაზე გამოიხატება ან ჩვეულებრივი კოორდინატებით (როგორც კოსმოსური ხომალდი ვარსკვლავთშორის სივრცეში) ან ობიექტზე მითითებით (იგივე გემი პლანეტის ორბიტაზე). ეს არის ბარათები Master of Orion, Arcanum (გლობალური) და ა.შ.
  • პაჩვორკი- TLKIClusterMap. მას აქვს ფონის თვისება, როგორიცაა გრაფიკი, და მეორე თვისება - ნიღაბი, რომელიც განსაზღვრავს რომელი წერტილი რომელ რეგიონს ეკუთვნის და საკუთრება საზღვრები, რომელიც განსაზღვრავს კავშირებს "შრედებს" შორის. ასეა მოწყობილი რუკები, მაგალითად, Medieval: Total War ან Victoria.

Ეს არის მნიშვნელოვანი:რუქების კლასები აღწერილია არა LKI2dEngine მოდულში, არამედ LKI2dMap-ში.

დახრის კუთხეები

მაგრამ თუ ფიქრობთ, რომ ეს ამოწურავს LKI-Creator-ის შესაძლებლობებს რუკების ჩვენებისთვის, მაშინ ძალიან ცდებით.

შესაძლებელია რუკის პრეზენტაცია ზედა ხედიან იზომეტრიული- შეხედეთ ვერტიკალურ კუთხეს. მაგალითად, ცივილიზაციის III ან Heroes of Might & Magic IV რუკა არის იზომეტრიული, მაგრამ ცივილიზაცია I იღებს ხედს ზემოდან ქვევით.

როგორც წესი, იზომეტრია გამოიყენება კრამიტით დაფარული რუქებისთვის, ხოლო გრაფიკული რუქები გამოიყენება ზედა ხედით, რადგან გრაფიკული რუქების მასშტაბები ჩვეულებრივ უფრო მცირეა. მაგრამ არის გამონაკლისები: მაგალითად, შუა საუკუნეებში: ტოტალური ომი არის პაჩვორკის იზომეტრიული რუკა.

რუკის თვისება პასუხისმგებელია იზომეტრიულობაზე იზომეტრიულიდა ორი პარამეტრი, რომელიც ადგენს კუთხეს, რომლითაც გამოიყურება ჩვენი კამერა: ფიდა თეტა.

პირველი პასუხისმგებელია რუკის ბრუნვაზე ვერტიკალურ ღერძთან მიმართებაში: მაგალითად, თუ დააყენებთ მას 45 გრადუსზე (იგი იზომება გრადუსით), მაშინ მართკუთხა ბადის უჯრედი იქნება ორიენტირებული ზემოთ კუთხით, როგორც ცივილიზაციაში. . Phi=0-ზე უჯრედის ერთ-ერთი მხარე ჰორიზონტალური იქნება.

მეორე აკონტროლებს კამერის დახრილობას ვერტიკალურთან შედარებით. მოხერხებულობისთვის, იგი მოცემულია სიგრძის ჰორიზონტალური და ვერტიკალური ერთეულების თანაფარდობით. ვთქვათ, თუ გვინდა, რომ ჩვენი უჯრედი იყოს დახატული სიგანის ნახევრად სიგანეზე, უნდა დავაყენოთ თეტა 2-ზე.

კრამიტით დაფარული რუქით, ჩვენ არ გვაქვს უფლება, თვითნებურად ავირჩიოთ ეს კუთხეები: ბოლოს და ბოლოს, ჩვენ (ჯერ) არ გვაქვს 3D. ისინი პირდაპირ დამოკიდებულია ფილების პარამეტრებზე. მაგალითად, თუ გვაქვს ალმასის ფორმის ღერძი აღმავალი კუთხით, ხოლო ვერტიკალური ღერძი ჰორიზონტალური ღერძის ზომის ნახევარია, მაშინ უნდა დავაყენოთ პარამეტრები 45 და 2.

მაგრამ გრაფიკული და პაჩვორკის რუქები გაძლევთ უფლებას მიანიჭოთ ეს პარამეტრები ისე, როგორც გსურთ (და თუნდაც, სურვილის შემთხვევაში, შეცვალოთ ისინი პროცესში), მაგრამ თქვენ არ უნდა გაიტაცოთ ამით - გარდა იმისა, რომ ასეთი მონაცვლეობა იღებს ბევრი დრო, ისინი ასევე არ გამოიყურება ძალიან მაგარი. და არ დაგავიწყდეთ, რომ თუ თქვენი რუკა მხატვრულია, ნახატებით, წარწერებით და ა.შ., მაშინ ისინი დაბრუნდებიან... ზოგადად, ხანდახან უფრო ადვილია პაჩვორკის რუკის დახატვა საჭირო ბრუნვის გათვალისწინებით - საბედნიეროდ, მანძილები. ხშირად იქ არ თამაშობენ რაიმე როლს.

სახსრები

Patchwork რუკა, ზედა ხედი.

კრამიტის რუკებს კიდევ ერთი პრობლემა აქვს - ფილების შეერთება. ის კონტროლდება პარამეტრით TileBorderStyle. ყველაზე ხშირად ეს tileStraight, რეჟიმი, რომელშიც ფილები უბრალოდ ჯდება ერთმანეთთან ყოველგვარი კიდეების ეფექტების გარეშე, ან tileBorder, რომელშიც შედგენილია ხაზები, რომლებიც გამოყოფს ერთ ფილას მეორისგან - უჯრედების საზღვრები (ამ უკანასკნელ შემთხვევაში, არ დაგავიწყდეთ განსაზღვროთ ფერიგისოსები პარამეტრში TileBorderColor).

მაგრამ არსებობს უფრო მზაკვრული ვარიანტი, როდესაც იდენტური ფილები ერთმანეთის გვერდით არის ცვლილებების გარეშე და სხვადასხვა გამოიყენება სპეციალური "გარდამავალი" კრამიტის გამოყენებით. ეს ჩვეულებრივ კეთდება იმ შემთხვევაში, თუ რუკა ძირითადად შედგება ერთი ტიპის ტერიტორიის ფართო სივრცისგან, ვთქვათ, დიდი მწვანე ტერიტორიებისგან, და ცალკეული უჯრედი არ არის მნიშვნელოვანი და არ უნდა იყოს შემჩნეული მოთამაშის მიერ. ეს არის Heroes of Might Magic ბარათი. მაგრამ თუ თითოეული უჯრედი ცალ-ცალკე დამუშავდება, როგორც ცივილიზაციაში, მაშინ ეს მეთოდი არ არის შესაფერისი და უმჯობესია უჯრედები მკაფიოდ გამოვყოთ ერთმანეთისგან. "შეფუთული" ტექნოლოგია (ასევე ე.წ ნიღაბი) მითითებულია TileBorderStyle მნიშვნელობით, რომელიც ტოლია ფილა ნიღბიანი. მათ სტრუქტურაზე სხვა დროს ვისაუბრებთ - ეს საკმაოდ რთული თემაა.

ფილა

რუკის ელემენტი - კლასის ობიექტი TLKITile- აქვს მარტივი სტრუქტურა. იგი თავდაპირველად შეიცავს: კოორდინატებს, სპრაიტს, რომელიც მას ხატავს, კრამიტის ტიპის კოდს (რომელიც განსაზღვრავს რა გვაქვს აქ - ბორცვი, უდაბნო, გზა, ზღვა?) და საზღვაო ქვეითების უნარს (ეს აქტუალურია უმეტეს თამაშებში). ბოლო არის გადაადგილების ერთეულების რაოდენობა, რომლებიც იხარჯება ამ ფილაზე გადაადგილებაზე მიწარაზმი. გაუვალი ფილებისთვის ეს უარყოფითი რიცხვია.

კიდევ ერთი პარამეტრი - ობიექტები, ამ ფილაზე განთავსებული ობიექტების სია (ტიპი TLKIGameObject).

იმის გასარკვევად, რომელ უჯრედზე დააწკაპუნეთ, რუკას აქვს მეთოდი MouseTile(x,y) აბრუნებს არჩეულ ფილას.

ფილების მეთოდები მოიცავს არის მეზობელი(ფილა, მანძილი). ეს ფუნქცია აბრუნებს ჭეშმარიტს, თუ ფილა დაშორებულია არაუმეტეს Distance უჯრებით მოცემული ფილისგან (ნაგულისხმევად ეს პარამეტრი უდრის ერთს, ანუ თუ უბრალოდ დაწერთ IsNeighbour(Tile), ფუნქცია დაბრუნდება ჭეშმარიტი ფილისთვის უშუალოდ მიმდებარე ფილისთვის. მოცემულ ფილაზე, კვადრატული ბადეებისთვის, ის ფილები, რომლებიც დიაგონალურად ესაზღვრება, ასევე ითვლება "მეზობლად".

ფუნქციები პირველი მეზობელიდა შემდეგი მეზობელიგამოიყენება მოცემული უჯრედის მიმდებარე ყველა უჯრედის შესამოწმებლად. მათგან პირველი მიუთითებს რომელიმე მეზობელ უჯრედზე, ხოლო მეორეს გამოძახება შესაძლებელია მხოლოდ პირველის გამოძახების შემდეგ და ის გამოსცემს შემდეგ მეზობლებს სათითაოდ.

მეზობლების ჩამოთვლა

// იწვევს უჯრედის დაზიანებას

პროცედურა TObeliskTile.Damage(dmg: მთელი რიცხვი);

თუ(ობიექტები. რაოდენობა > 0) და// შეიძლება გვქონდეს

// არაუმეტეს ერთი ობიექტი უჯრედზე

(ობიექტები. ID > 0) // პასიური ობიექტები

// არ არის დაზიანებული

Dec(Objects.Hits,

// ავტომატურად გამოაკელი დაცვა დაზიანებისგან

Max(0,dmg-(ობიექტები როგორც TObeliskGameObject).თავდაცვა);

თუობიექტები.Hitshen Die; // მიცვალებულებს ვხსნით

// Fireball შეტევა

პროცედურა TObeliskTile.Fireball;

ვარმეზობელი: TObeliskTile;

Neighbor:= FirstNeighbour როგორც TObeliskTile;

მეზობელი.დაზიანება(6);

Neighbor:= შემდეგი Neighbour როგორც TObeliskTile;

მანამდემეზობელი = ნული; // სანამ მეზობლები არ ამოიწურებიან

მაგალითი არის „მეზობლების ჩამოთვლა“ გვერდითა ზოლში. ეს პროცედურა ითვლის უჯრედს და მის ყველა მეზობელს ურტყამს.

Ეს საინტერესოა: მისი მუშაობისთვის საერთოდ არ აქვს მნიშვნელობა, გვაქვს ექვსკუთხა გისოსი ან კვადრატული.

ხშირად გვჭირდება რამდენიმე სხვა პარამეტრი და, როგორც წესი, ფილების კლასი, რომელიც ქმნის რუკას - შთამომავალი TLKITile. ასე რომ, მაგალითში - TObeliskTile არის მემკვიდრეობით TLKITile-სგან.

Ეს არის მნიშვნელოვანი:თუ კრამიტით მოპირკეთებულ რუკას მოვიტანთ ჩვენი თამაშის ეკრანზე, კოორდინატები, ისევე როგორც მანძილიდან დაკავშირებული TLKIGameObject მეთოდები, ნაგულისხმევად იწყებენ მანძილის გაზომვას ფილებით და არა წერტილებით. ღილაკების კოორდინატები, ხატები და ა.შ. გააგრძელეთ პიქსელებით გაზომვა! მაგრამ ეს რეჟიმი შეიძლება გამორთოთ - ეს შეიძლება სასარგებლო იყოს რეალურ დროში სტრატეგიებისთვის.

ბარათის შერჩევა

მაშ ასე, დავიწყოთ მართკუთხა გისოსით (TLKIRectMap), იზომეტრიული რუკებით (კუთხოვანი პარამეტრები 0, 1.5). მიეცით ბადე დახატული (tileBorder სტილი). მოდით ვუთხრათ ძრავას, რომ ეს კონკრეტული რუკა უნდა იყოს ნაჩვენები. აქამდე ყველა საჭირო მოქმედება შესრულებულია კოდის ერთი ხაზის დაწერის გარეშე.

ეს ოპერაციები უნდა გაკეთდეს ადრეძრავის ინიციალიზაცია, ასევე შრიფტის დეკლარაცია.

ჩვენ გამოვაცხადებთ ფიგურებს, როგორც ადრე, სპრაიტებად.

რუქის რედაქტორი

Patchwork რუკა, იზომეტრიული.

აქ საკმაოდ ბევრი სირთულეა. ზუსტად იგივე ძრავა, იგივე კრამიტის დეკლარაციები... ინტერფეისი, როგორიცაა კრამიტის არჩევა, ჩატვირთვა/შენახვა და ა.შ., მარტივად შეიძლება გაკეთდეს დელფის სტანდარტული ხელსაწყოების გამოყენებით: არავინ გვაიძულებს გადავიტანოთ ის სრულეკრანიან რეჟიმში. ჩვენ ამას აქ არ გავაანალიზებთ - ყველაფერი მაგალითშია. მაგალითის კოდი განზრახ იყენებს უმარტივეს მეთოდს; თუ სასურველია, შეგიძლიათ, მაგალითად, გააკეთოთ ობიექტების პალიტრა და კრამიტის პალიტრა გრაფიკული.

რედაქტორს აქვს მხოლოდ ორი მახასიათებელი, რომელიც ჩვენთვის უცნობია. პირველი საკმაოდ მარტივია: ეს არის მაუსის ახალი ფუნქცია, რომელიც შექმნილია სპეციალურად კრამიტის რუკებისთვის. ფუნქცია TLKIRectMap.SelectTileაბრუნებს მაჩვენებელს ზუსტად იმ ფილაზე, რომელზეც დააწკაპუნეთ, ასე რომ ჩვენ შეგვიძლია ადვილად გავუმკლავდეთ დაწკაპუნებას.

მაგრამ მეორე ახალი პროდუქტი უფრო ფრთხილად განხილვას იმსახურებს.

სინამდვილეში, არსებობს მრავალი გზა მონაცემების შესანახად და მისგან წაკითხვისთვის. ჩვენ ავირჩიეთ ფაილში კოდირებული მეთოდი CannonBase. Cannon არის ინსტრუმენტი შთამომავლობის საგნების წაკითხვისა და ჩაწერისთვის TCannonObjectტიპის შემოწმებით და სხვა ფუნქციებით.

მოდით შევხედოთ კოდს („ბარათის ჩაწერა“).

ბარათის ჩაწერა

პროცედურა TObeliskMap.Save;

ვარ i,j: მთელი რიცხვი;

InitSave (FName);

WriteStr(MapName);

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

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

ამისთვისმე:=0 რომრუკა.სიგანე-1 კეთება

j:=0-ისთვის რომრუკა.სიმაღლე-1 კეთება

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

აი, როგორ მუშაობს. პირველი თქვენ უნდა გახსნათ ფაილი სპეციალური პროცედურის გამოყენებით InitSave, რომლის ერთადერთი პარამეტრია ფაილის სახელი. შემდეგ ჩვენ ვინახავთ სათაურს ტიპის კონტროლისთვის სპეციალური პროცედურის გამოყენებით WriteHeader. შემდეგ ჩვენ ვწერთ ყველაფერს, რაც გვჭირდება პროცედურის გამოყენებით WriteStrსტრიქონებისთვის და ყველა სხვა ველისთვის - დაწერე(მისი მეორე პარამეტრი არის დაწერილი მონაცემების ზომა ბაიტებში). თქვენ შეგიძლიათ დაწეროთ თქვენი საკუთარი პროცედურები ობიექტის ველებისთვის საჭიროებისამებრ Გადარჩენასათაურის ჩანაწერით. და ბოლოს, ჩვენ ვხურავთ ფაილს პროცედურის საშუალებით FinSave.

ყველა ობიექტი, რომელსაც აქვს საკუთარი სათაური, ცალკე უნდა იყოს გამოცხადებული. თავში ინიციალიზაციამოდული (სურვილისამებრ განყოფილება, რომელიც მოდის შემდეგ განხორციელება, რომელიც შეიცავს ბრძანებებს, რომლებიც უნდა შესრულდეს თავიდანვე, პროგრამის გაშვებისას), უნდა დაწეროთ შემდეგი სტრიქონი, მაგალითად:

RegisterUserName(tpMap, "TObeliskMap");

TpMapარის მუდმივი, რომელიც თქვენც უნდა გამოაცხადოთ. გაუტოლეთ მას, ვთქვათ, 1-ს. და TObeliskMap ობიექტის კონსტრუქტორში მიანიჭეთ ამ მუდმივის მნიშვნელობა პარამეტრს. TypeID.

რატომ მთელი ეს აურზაური? გარდა ტიპის შესატყვისისა, თქვენ მიიღებთ ერთ ძალიან მნიშვნელოვან სარგებელს.

თუ ფაილის ფორმატი იცვლება, ვთქვათ, ახალი ველების დამატების გამო, თქვენ არ დაგჭირდებათ რაიმე „კონვერტერის“ დაწერა, რომელიც ძველ ფაილებს ახალში გარდაქმნის. თქვენი კოდი ავტომატურად წაიკითხავს მათ.

ეს კოდი ავტომატურად განაახლებს ახალ ველს, როგორც ცარიელი, თუ ის ფაილში არ არის შენახული. და თქვენ შეგიძლიათ დაწეროთ ფაილი უბრალოდ WriteStr(Name) ხაზის ბოლოში დამატებით.

კომენტარი:თუ ჯერ კიდევ არ გესმით, რისთვის არის ეს პროცესი, არ ინერვიულოთ. შეგიძლიათ გამოიყენოთ ჩაწერის და შენახვის უფრო ჩვეულებრივი მეთოდები. მაგრამ მართლაც ფართომასშტაბიანი თამაშის პროექტებში, ეს გზა მნიშვნელოვან უპირატესობებს იძლევა.

Მოდი ვითამაშოთ

უპირველეს ყოვლისა, ჩვენ უნდა შევქმნათ TLKIGameObject-დან მიღებული ახალი კლასი. ძველის თვისებები გამოგვრჩება. ახალ კლასში თქვენ უნდა დაამატოთ ველები ძირითადი მახასიათებლებისთვის: დიაპაზონი, მოძრაობა და ა.შ.

Ეს არის მნიშვნელოვანი:ჩვენი ძველი სიჩქარის პარამეტრი ჩვენთან რჩება, მაგრამ ის მიუთითებს ეკრანზე გადაადგილების ცალი სიჩქარეზე და არა მანძილს, რომელსაც იგი გაივლის ყოველ შემობრუნებაზე. რეალურ დროში სტრატეგიას რომ ვაკეთებდით, ახალი პარამეტრი არ დაგვჭირდებოდა, წინააღმდეგ შემთხვევაში მისი დანერგვა მოგვიწევს.

ჩვენს ეკრანზე გამოვიყენებთ TLKIButton ღილაკებს მშვილდოსნების, ხმლების, ჯადოქრების, მოჩვენებების, რაინდების სახით.

ჯერ მოწყობა გვაქვს. მოდით განვსაზღვროთ განლაგების ზონა ერთი მხარისთვის, როგორც რუკის ზედა სამი „ხაზი“, მეორესთვის - როგორც ქვედა სამი „ხაზი“.

კოდი მუშაობს ასე. რომელიმე ღილაკზე დაჭერისას გააქტიურებულია შესაბამისი მებრძოლის ინსტალაცია; განლაგების ზონაში დაუკავებელ კვადრატზე დაწკაპუნება ფიგურას ათავსებს იქ და გამორთავს ღილაკს. როგორც კი ყველა ღილაკი გამორთულია, ნაბიჯი გადაეცემა მტერს.

ყოველი ახალი ნაბიჯის დასაწყისში ყველა ღილაკი ისევ ჩართულია: ეს ისე კეთდება, რომ ადამიანმა უფრო ადვილად შეამჩნია, ვისაც ჯერ არ ჰგავდა. შესაბამისად, ღილაკზე დაჭერით ირჩევს ფიგურას და როგორც კი მოძრაობს, ღილაკი ქრება. კიდევ ერთი ღილაკი - "დასრულება შემობრუნება" - გამოჩნდება მხოლოდ განლაგების ფაზის შემდეგ.

ბოლო დროს ჩვენ უკვე გავაკეთეთ ოპერაციები ინტერფეისის ელემენტების ჩართვისა და გამორთვისთვის, ამიტომ ამ ოპერაციას დეტალურად არ გავაანალიზებთ - შეხედეთ მაგალითს კოდს.

ცალი მოძრაობა

// თუ არჩეული უჯრედი დაკავებულია მტრის მიერ, ჩვენ თავს დაესხმებათ,

// თუ თავისუფალია, ჩვენ ვმოძრაობთ, თუ ჩვენით ვართ დაკავებული

// ან დაბრკოლება - დაწკაპუნების იგნორირება

Tile:= Map.MouseTile(MouseX, MouseY);

თუ(ფილა = ნული)// დააწკაპუნეთ თამაშის ფანჯრის გარეთ

მაშინგასასვლელი;

// მოძრავი

თუ(Tile.Objects.Count = 0)

და(დისტანცია (თვითონ)

და არაგადავიდა მაშინ

// მოდით შევამოწმოთ, შეგვიძლია თუ არა იქ მისვლა

თუ არა HasWay (ფილა) მაშინგასასვლელი;

MoveObj(ID, Tile.x, Tile.y);

// თამაში არის მორიგეობით დაფუძნებული - გადაადგილება დაუყოვნებლივ

გადატანილია:= true;

//

თუთავს დაესხნენ მაშინ

Icon.IsVisible:= ყალბი;

// შეტევა

თუ(Tile.Objects.Count > 0)

და(დისტანცია (თვითონ)

და არათავს დაესხნენ მაშინ

Obj:= Tile.Objects;

// ჩვენ მხოლოდ მტრებს ვეწინააღმდეგებით

თუ Obj.Side = Side მაშინგასასვლელი;

Obj.Damage(dmg);

თავდასხმა:= მართალია;

// თუ გადაადგილება დასრულებულია, ამოიღეთ ხატულა

თუგადავიდა მაშინ

Icon.IsVisible:= ყალბი;

სვლა მუშავდება შემდეგნაირად (იხ. „ცალი გადაადგილება“). დაწკაპუნებული უჯრედი მდებარეობს. თუ მასზე მტერია და ისინი დისტანციურად არიან, ის ზარალდება, თუ ის ცარიელია და დისტანციურად მოძრაობს (თუ დაბრკოლებები საშუალებას იძლევა, მაგრამ არა მტერი, დაწკაპუნება იგნორირებულია); .

როდესაც ორივე მხარე მიუახლოვდა, დრაკონები მოქმედებდნენ. ისინი ძალიან მარტივად მოქმედებენ: ირჩევენ უახლოეს არა-დრაკონს, რომელიც მათგან 7 კვადრატშია და თავს ესხმიან. იხილეთ Dragon Actions კოდი.

დრაკონის მოქმედებები

// ფილების შემოწმება დრაკონის 7 კვადრატში

ამისთვის i:= მაქს(0, x - 7) რომმინ (მაქს. ზომა, x + 7) კეთება

ამისთვის j:= მაქს(0, y - 7) რომმინ (მაქსიმალური ზომა, y + 7) კეთება

if (Map.Tiles.Objects.Count > 0) და

(Map.Tiles.Objects.Code>1)

// 0 - დაბრკოლების კოდი, 1 - დრაკონი

მაშინ დაიწყოს

// გადასაადგილებელი წერტილის არჩევა

თუ x=i მაშინცული:=ი

სხვათუ x>i მაშინცული:=i+2

სხვაცული:= i-2;

თუ y=j მაშინ ay:=j

სხვათუ y>j მაშინ ay:= j+2

სხვა ay:= j-2;

MoveObj(NO, ax, ay);

// შევეტევით

Map.Tiles.Damage(12);

// ციკლის დარღვევა: არაუმეტეს ერთი შეტევა

// თითოეული დრაკონი თითო რაუნდში

დაბოლოს, რჩება მხოლოდ იმის შემოწმება, არის თუ არა ობელისკების ნახევარზე მეტი დაკავებული ერთი მხარის ჯარების მიერ - და თუ ისინი არიან, მაშინ შეწყვიტე თამაში და გამოაცხადე გამარჯვებული!


ასე რომ, ჩვენ გვაქვს სტრატეგიული თამაში. თუმცა სრული ბედნიერებისთვის, უპირველეს ყოვლისა, აკლია ხელოვნური ინტელექტი, რომელიც შესაძლებელს გახდის თამაშს მივანიჭოთ ერთმოთამაშიანი რეჟიმი (ჩვენ არ განვიხილავთ დრაკონების მართვის უმარტივეს პროცედურას). ეს არის ის, რასაც ჩვენ გავაკეთებთ შემდეგ ჯერზე. გნახავ ერთ თვეში!

მომავალ ნომრებში

შემდეგ საკითხებზე ვისაუბრებთ:

  • ნაწილაკების სისტემები კვამლის, ნაპერწკლების და ა.შ.
  • მუშაობა გამჭვირვალობით;
  • სამგანზომილებიანი ძრავები;
  • AI საფუძვლები;
  • პროგრამის გამართვა;
  • თამაშის გეგმისა და სკრიპტის შექმნა,
  • საპროექტო დოკუმენტის დაწერა;
  • თამაშის ბალანსი;
  • თამაშის პერსონაჟების და მათი ხაზების აზროვნება;
  • Photoshop და 3D პაკეტებთან მუშაობა;
  • ანიმაციები;
  • მუსიკა და ხმის მსახიობობა;
  • და უფრო მეტი.

სავსებით შესაძლებელია ისწავლოთ როგორ გააკეთოთ ეს ყველაფერი საკუთარი ხელით. ამას მალე ნახავთ.

მოგვწერეთ…

მათთვის, ვინც ფიქრობს, რომ პაკეტი შეიძლება დაემატოს რაღაცას: პირველ რიგში, არ უნდა დაგვავიწყდეს, რომ დღეს ჩვენს დისკზე ჯერ არ არის პაკეტის საბოლოო ვერსია, მაგრამ მხოლოდ ის, რომელიც ახორციელებს ჩვენს სტატიებში აღწერილ ფუნქციებს. შესაძლოა, ზოგიერთი თქვენი იდეა უკვე განხორციელდა და ელოდება თავის რიგს (იხილეთ გვერდითი ზოლი „მომავალ ნომრებში“). და ნებისმიერ შემთხვევაში: როდესაც იდეას გვთავაზობთ, შეეცადეთ დაასაბუთოთ, რატომ არის თქვენი წინადადება სასარგებლო ერთდროულად მრავალი თამაშისთვის და არა მხოლოდ თქვენი კონკრეტულისთვის.

დამოუკიდებელი მუშაობისთვის

მომდევნო ნომრის მოლოდინში, შეგიძლიათ იმუშაოთ საკუთარ პროექტზე, ან შეგიძლიათ სცადოთ მისი გაუმჯობესება. აქ არის რამდენიმე იდეა თქვენი საკუთარი განხორციელებისთვის:

  • დაყავით დაბრკოლების საგნები განადგურებად (ხეები და ბუჩქები) და ურღვევად (კლდეები) და დარწმუნდით, რომ ცეცხლოვანი ბურთები და დრაკონის სუნთქვა წვავს მცენარეულობას;
  • შექმენით ორმოები (ყავისფერი უჯრედი) ან ცეცხლი, რომელიც ანათებს რამდენიმე ბრუნვის განმავლობაში (წითელი უჯრედი) იმ ადგილას, სადაც ცეცხლის შეტევა გამოიწვია;
  • ნება მიეცით ხმალსა და რაინდებს დაფარონ მეზობლები, რაც მათ დაცვას +1 აძლევს;
  • გახადეთ ფიგურების მოძრაობა ეკრანზე გლუვი.

რა მოხდება, თუ რეალურ დროში?

რეალურ დროში სტრატეგიული თამაშის გაკეთება არ არის უფრო რთული, თუ უბრალოდ მოთამაშეებს აძლევთ სხვადასხვა შეყვანის საშუალებას. ამის გაკეთების უმარტივესი გზაა ქსელის საშუალებით - ამაზე ვისაუბრებთ ერთ-ერთ მომავალ ნომერში. ასევე საჭირო იქნება შემდეგი ცვლილებები:

  • არ არის საჭირო ველი Თამაშის სიჩქარეკლასში TObeliskObject- გამოიყენეთ სიჩქარე საბაზისო ძრავიდან (ეკრანის გასწვრივ მოძრაობის სიჩქარე უდრის თამაშის სიჩქარეს);
  • დისტანციების მთელი რიცხვის გამოთვლა გამორთულია;
  • ფიგურის მოძრაობის კოდი ხელახლა იწერება, იმის გათვალისწინებით, რომ აუცილებელია ტრაექტორიის დახაზვა დაბრკოლებების გარშემო;
  • ღილაკი "გადაადგილების დასასრული" ამოღებულია.

Სულ ეს არის. თავად ეცდები ამის გაკეთებას?

თქვენი კომპანია მიმაჩნია ერთ-ერთ უძლიერესად ჩვენს ქვეყანაში საკონსულტაციო მომსახურების ბაზარზე. მომწონს, რომ მენეჯმენტის პრობლემების ფართო სპექტრს ეხები და საკმარისი ხარისხითა და სიღრმისეულად აშუქებ მათ.მე ვპოულობ ბევრ სასარგებლო ინფორმაციას თქვენი კომპანიის პუბლიკაციებში, რადგან ყოველთვის საინტერესოა პროფესიონალების გამოცდილების გაცნობა და მათგან სწავლა.

ბორისიუკი იური ალექსანდროვიჩი, მენეჯმენტის კონსულტანტი, ტექნიკურ მეცნიერებათა დოქტორი

მე ძალიან მომწონს მასტერკლასების სერია, რომელსაც თქვენ ასწავლით.პირადად მე, ადრე ქარხნის ხელმძღვანელი რომ ვიყავი, დავიწყე მენეჯმენტისადმი მიდგომების შეცვლა, მათ შორის. თქვენგან მიღებული ინფორმაციის წყალობით. მან რატომღაც უპასუხა იმას, რაც მე გავაკეთე და დავაკვირდი ქარხანაში. მას შემდეგ დავიწყე ფიქრი იმაზე, თუ რამდენად არაეფექტურია რუსეთის სამრეწველო შესაძლებლობები და რამდენად დიდია პოტენციალი და როგორ შეიძლება ამის რეალიზება. პირადად რომ გავეცანი სხვადასხვა საწარმოს პრობლემებს (ზოგჯერ მეგობრები მეპატიჟებიან ექსპერტად), ვხედავ, რამდენის გაკეთება შეიძლება, როგორ გავზარდო როგორც ეფექტურობა, ასევე ეფექტურობა.

დრიაგინი ოლეგ ბორისოვიჩი

დიახ, მომწონს თქვენი მასტერკლასები,ძალიან სისტემატური მიდგომა, მასალის მაღალ დონეზე ცოდნა და, რა თქმა უნდა, დიდი პრაქტიკული გამოცდილება განხილულ საკითხებში. რაც მიზიდავს ის არისალექსანდრეს პროფესიონალიზმი და საგნის პროფესიული ცოდნის მაღალი დონე საშუალებას მაძლევს სხვანაირად შევხედო უკვე ნაცნობ საგნებს. ჩემი გადმოსახედიდან ეს არისძალიან მნიშვნელოვანი და აუცილებელია, ახლებურად შეხედო შენს ცოდნას, რადგან... ქირურგიული სამუშაოების დროს ძალიან ხშირად თვალი „ბუნდოვანი“ ხდება და ფაქტობრივად აშკარა საგნების ხილვას წყვეტ.

ელენა ფედაში, HR დირექტორი, ATB Corporation, დნეპროპეტროვსკი.

ამ სტატიაში, ნაკლებად სავარაუდოა, რომ შევეხები რაიმე უცნობს. ყველა გამოთვლა მარტივი და გასაგებია ყველასთვის, ვინც იცის რა არის აიაქსი. მე უკვე დავწერე სტატია იმის შესახებ, თუ როგორ გავაერთიანოთ კლიენტი სერვერთან რეალურ დროში თამაშებში (). ამ სტატიაში მე განვიხილავ იმავე საკითხებს, რაც ეხება რიგრიგობით დაფუძნებულ თამაშებს.

მაშ რა არის ბრუნზე დაფუძნებული თამაში? შემდეგი განმარტება შეგიძლიათ იხილოთ ვიკიპედიაში მონაცვლეობაზე დაფუძნებული სტრატეგია - არის კომპიუტერული თამაშების ჟანრი, რომლის მთავარი მახასიათებელია ის, რომ მოთამაშეები მორიგეობით მოძრაობენ, რეალურ დროში სტრატეგიისგან განსხვავებით.. ამ განმარტებას ცოტათი გავამარტივებ:

  • ნაბიჯ-ნაბიჯ სტრატეგია - არის მორიგეობით დაფუძნებული სტრატეგიული თამაში.
  • სტრატეგიული თამაში - ეს არის თამაშების ჟანრი, რომელშიც გამარჯვების გასაღები არის დაგეგმვა და სტრატეგიული აზროვნება..
  • მორიგეობით დაფუძნებული თამაში - არის თამაშების ჟანრი, რომლის მთავარი მახასიათებელია ის, რომ მოთამაშეები რიგრიგობით მოძრაობენ.
მორიგეობით დაფუძნებული თამაშები მოიცავს:
  • მორიგეობით დაფუძნებული სტრატეგიები
  • კარტის თამაშები
  • სამაგიდო თამაშები (ჭადრაკი, გოლი, მონოპოლია და ა.შ.)
მე აღვნიშნავ, რომ მონაცვლეობით დაფუძნებული თამაშები რეალურ დროში თამაშებთან შედარებით ნაკლებ შეზღუდვებს აწესებს ურთიერთქმედების პროტოკოლის სირთულეზე. კერძოდ, კონკრეტულ მოვლენაზე რეაქციის დრო არ თამაშობს მთავარ როლს. გადაწყვეტილების მისაღებად მოთამაშეს ჩვეულებრივ ეძლევა 10 წამი. მაშინაც კი, თუ პინგ არის გიგანტური, ვთქვათ 3 წამი, მაშინ მოთამაშეს ჯერ კიდევ აქვს 7 წამი დასაფიქრებლად. გარდა ამისა, პინგს შეუძლია ხტუნვა და ხტომა, მაგრამ ჩვენ ეს საერთოდ არ გვაინტერესებს (რეალურ დროში თამაშებში ეს სიტუაცია პრაქტიკულად კლავს ნებისმიერ პროტოკოლს).

როგორც წესი (რიგზე დაფუძნებული თამაშების 95%-ში) ზუსტად ერთი მოთამაშე იღებს გადაწყვეტილებას ნებისმიერ დროს. შესაბამისად, ვიწროვდება იმ მოთხოვნების რაოდენობა, რომლებზეც ადეკვატურად უნდა ვუპასუხოთ.

ამიტომ პროტოკოლის შექმნისას, პირველ რიგში, ყურადღებას გავამახვილებთ მისი განხორციელებისა და მხარდაჭერაზე. ეს მოგვცემს საშუალებას მივიღოთ მეტი მოგება ნაკლებ დროში.

ზემოაღნიშნული მსჯელობა ეფუძნება გარკვეული კარტის თამაშის 2 თვიან განვითარებას.

ჭკვიანი თუ სულელი კლიენტი?

ჯერ გადავწყვიტოთ, რამდენად „ჭკვიანი“ შეიძლება იყოს ჩვენი კლიენტი. მე ვმსჯელობ, ღირს თუ არა აპლიკაციის ლოგიკის (თამაშის წესების) დუბლირება კლიენტზე. რა თქმა უნდა, სერვერი უნდა იყოს ჭკვიანი, რომ თავიდან აიცილოს აპლიკაციის პოტენციური გატეხვა. მაგრამ ღირს ბიზნეს ლოგიკის სწავლება კლიენტისთვის?

ეს პირდაპირ დამოკიდებულია იმაზე, თუ რამდენს იწონის თქვენი თამაშის მდგომარეობის შესახებ მონაცემების სრული რაოდენობა. თუ მონაცემთა ეს რაოდენობა დიდია, სერვერზე შეგროვებას დიდი დრო სჭირდება და კლიენტს გადაეცემა, მაშინ აზრი აქვს კლიენტზე ლოგიკის ნაწილის დანერგვას სერვერის განმუხტვის მიზნით. მაგალითად, ცივილიზაციაში გამოყენებული მეხსიერების ლიანდაგი ყოველთვის არ არის ჩარტებში. შეგიძლიათ შექმნათ მსგავსი რამ და დატოვოთ მხოლოდ UI კლიენტზე?

მეორეს მხრივ, რაც უფრო ჭკვიანია კლიენტი, მით უფრო ძვირი იქნება თამაშის განვითარება. ნება მომეცით აღვნიშნო, რომ სერვერის განვითარების დრო არანაირად არ არის დამოკიდებული კლიენტის ერუდიციაზე. მაშინაც კი, თუ კლიენტი სუპერ-დუპერ-მეგა ჭკვიანია, თუ მომხმარებელს სურს ბრაუზერის ფანჯრის გადატვირთვა, სერვერს მოუწევს შეაგროვოს და შეაგროვოს თამაშის შესახებ ყველა მონაცემი კლიენტისთვის გადასაცემად. A la "შენახული თამაშის ჩატვირთვა". დასკვნა: ჭკვიან კლიენტს შეუძლია დააჩქაროს აპლიკაცია, მაგრამ მას ყოველთვის დასჭირდება დამატებითი რესურსები აპლიკაციის შესაქმნელად.

მე გთავაზობთ შემდეგს ტესტი:

1. არხის მოცულობა საშუალებას იძლევა?

შეაფასეთ თამაშის მდგომარეობის მონაცემების სრული მოცულობის საშუალო წონა. შემდეგი, გავამრავლოთ სერვერის მოთხოვნების საშუალო რაოდენობა წამში. თუ მიღებული რიცხვი აღემატება გამავალი მონაცემთა არხის მოცულობას, მაშინ სულელი კლიენტი მიუღებელია. თუ ეს რიცხვი აჭარბებს გამავალი არხის 20%-ს, მაშინ უნდა იფიქროთ იმუშავებს თუ არა?

2. არის თუ არა შრომატევადი?

შეაფასეთ თამაშის მონაცემთა შეგროვების ალგორითმის სირთულე (წამის ნაწილებში). აქ, გაითვალისწინეთ ყველა მოთხოვნა მონაცემთა ბაზაში. შემდეგი, გავამრავლოთ სერვერის მოთხოვნების საშუალო რაოდენობა წამში. თუ დრო აღემატება ერთ წამს, მაშინ სულელი კლიენტი მიუღებელია. თუ ეს რიცხვი 200 ms-ს აჭარბებს, მაშინ უნდა იფიქროთ, გაგრძელდება თუ არა?

გაგრძელება:

დღესდღეობით, თქვენ შეგიძლიათ მარტივად იპოვოთ ბევრი სავაჭრო სტრატეგია, ერთადერთი პრობლემა ის არის, რომ მათი უმეტესობა ან არ მუშაობს ან საკმარისად ეფექტური არ არის. ასეთ ვითარებაში ნულიდან სტრატეგიის შექმნა პრობლემის შესანიშნავი გადაწყვეტაა.

და მიუხედავად იმისა, რომ თითოეულ კონკრეტულ სიტუაციაში მანქანის შექმნა განსხვავებული იქნება, ძირითადი ეტაპები იგივე რჩება. ანუ თქვენ შეგიძლიათ შექმნათ რაღაც უნივერსალური სახელმძღვანელოს მსგავსი, თანმიმდევრულად გაიაროს ყველა ეტაპი და ბოლოს მივიღებთ სრულიად მოქმედ სისტემას.

მიუხედავად იმისა, რომ ჩვენ განვიხილავთ სტრატეგიის შექმნის ვარიანტს ნულიდან, დაწყებული იდეით და დამთავრებული ფილტრის შემოღებით და ავტომობილის საბოლოო განვითარებით, ეს არ ნიშნავს იმას, რომ ყველა მზა სისტემა დაუყოვნებლივ უნდა იქნას გაუქმებული, როგორც აშკარად არაეფექტური. . რიგი TS შეიძლება გამოყენებულ იქნას როგორც საფუძველი და უბრალოდ დაამატოთ რამდენიმე ფილტრი ყალბი სიგნალების მოსაშორებლად.

სტრატეგიის შექმნის ძირითადი ეტაპები

თუ შემთხვევით აიღებთ 5-7 ინდიკატორს და ცდილობთ მათგან შექმნათ სამუშაო მანქანა, მაშინ ნაკლებად სავარაუდოა, რომ რაიმე სასარგებლო გამოვა. ჯერ უნდა იფიქროთ სტრატეგიის მთავარ იდეაზე და მხოლოდ ამის შემდეგ გადახვიდეთ ინსტრუმენტების შერჩევაზე. შეიძლება შემოგთავაზოთ მოქმედებების შემდეგი თანმიმდევრობა:

  • თუ სისტემა იქმნება ნულიდან, მაშინ პირველი ნაბიჯი არის იდეაზე მუშაობა. ამ ეტაპზე თქვენ უბრალოდ უნდა გადაწყვიტოთ როგორი იქნება თქვენი სავაჭრო სტილი, მაგალითად, განხორციელდება თუ არა ტრანზაქციები ტენდენციის მიხედვით თუ მის საწინააღმდეგოდ, ან შესაძლოა სტრატეგია დაგეგმილი იყოს ექსკლუზიურად ბრეაკოუტისთვის. ჩვენ ჯერ არ ვფიქრობთ კონკრეტულზე;
  • ვაჭრობის შესაბამისი სტილის არჩევის შემდეგ, შეგიძლიათ დაიწყოთ დეტალების შემუშავება. ინსტრუმენტების არჩევამდე მკაფიოდ უნდა განსაზღვროთ სამუშაო ვალუტის წყვილი და ვადები, ვაჭრობის დრო და ა.შ.;

Მნიშვნელოვანი! დროის ჩარჩოს არჩევისას არ არის მიზანშეწონილი ძალიან მცირედ წასვლა, განსაკუთრებით იმ შემთხვევაში, თუ ტრეიდერს არ აქვს მცირე დროის ინტერვალებით სპეკულაციის გამოცდილება. დამწყებთათვის, ზოგადად, უკეთესია, რომ არ ჩამოხვიდეთ H1-H4-ზე, შეგიძლიათ წაიკითხოთ ოპტიმალური დროის ინტერვალის არჩევის შესახებ.

  • შემდეგი ეტაპი არის შესაფერისი ინსტრუმენტების შერჩევა და აქ არჩევანის სიმრავლემ შეიძლება სასტიკი ხუმრობა მოახდინოს ტრეიდერს, რადგან მას აქვს ათობით ინდიკატორი მის ხელთ, სანთლის, ტალღის, ტექნიკური და ფუნდამენტური ანალიზის გამოყენების შესაძლებლობა. მთელი ამ მრავალფეროვნებიდან, თქვენ უნდა აირჩიოთ რამდენიმე ინსტრუმენტი, რომელიც საუკეთესოდ შეესაბამება თქვენს დაგეგმილ სავაჭრო სტილს;
  • ნებისმიერი სტრატეგიის ერთ-ერთი მთავარი წესი არის ის, რომ მიღებული სიგნალი უნდა დადასტურდეს რამდენიმე ფილტრით, მაგრამ მიზანშეწონილია მათი რაოდენობის შეზღუდვა. მაგალითად, ინდიკატორის სტრატეგიებისთვის არასასურველია ინდიკატორების რაოდენობამ 3-4-ს გადააჭარბოს, წინააღმდეგ შემთხვევაში სიგნალებში იქნება დაბნეულობა და თუ გეგმავთ ტექნიკური ანალიზის გამოყენებით მუშაობას, მაშინ ინდიკატორები ითამაშებენ დამხმარე როლს;
  • შემუშავებულია პოზიციის მხარდაჭერის წესები, შედეგი უნდა იყოს მოქმედებების ალგორითმი ნებისმიერი სცენარისთვის;
  • ბოლო ეტაპი არის მანქანის გაშვება ჯერ ისტორიის ანგარიშზე, შემდეგ კი დემო ანგარიშზე, ან კიდევ უკეთესი, რეალურ ცენტზე. მთავარი მიზანია სტრატეგიის სიცოცხლისუნარიანობის გამოცდა რეალურ პირობებში და რეალური ანგარიში (თუნდაც ცენტი) საშუალებას მოგცემთ იგრძნოთ ემოციების მთელი დიაპაზონი, ეიფორიიდან დაწყებული დანაკარგების სიმწარემდე.

თქვენ ასევე შეგიძლიათ ურჩიოთ, არ დაკიდოთ მანქანის სირთულე. პრაქტიკა გვიჩვენებს, რომ გადაჭარბებული სირთულე საერთოდ არ არის ეფექტურობის მაჩვენებელი. რაც უფრო მარტივია სისტემა, მით უფრო ადვილია ვაჭრობა.

რა უნდა შეიცავდეს მანქანას?

სტრატეგიის შექმნა ცოტათი ჰგავს კონსტრუქციულ კომპლექტს, თქვენ უბრალოდ უნდა აირჩიოთ სწორი ნაწილები. მანქანის შექმნისას შეგიძლიათ და უნდა გამოიყენოთ:

  • ინდიკატორები. უფრო მეტიც, არ უნდა ადევნოთ არც მათი რაოდენობა და არც გადაჭარბებული სირთულე, თუნდაც სრულად მექანიკურ მანქანებში, საკმარისია 3-5 ცალი;
  • გრაფიკული ნიმუშები - კარგად ცნობილი დროშები, კალმები, სამკუთხედები, თავი და მხრები, ორმაგი ქვედაბოლოები და ზედა ნაწილები კვლავ კარგად მუშაობს;
  • გრაფიკული კონსტრუქციები;
  • ფიბოს დონეები;
  • ფუნდამენტური ანალიზის ელემენტები - ახლა ძნელია ფულის გამომუშავება მხოლოდ სიახლეებზე, მაგრამ აუცილებელია ეკონომიკური კალენდრის გათვალისწინება ვაჭრობაში. სულ მცირე, უბრალოდ გადაიტანეთ ტრანზაქციები მინიმალურ დონეზე, აშშ-სა და ევროპისთვის მნიშვნელოვანი სტატისტიკის გამოქვეყნებამდე, ან თუნდაც მთლიანად დახუროთ მოგება.

ასევე არსებობს მრავალი ტექნიკა, რომელთა სარგებელი საეჭვოა:

  • მარტინგალი თავდაპირველად წამგებიანი ტაქტიკაა, წარმატების ერთადერთი შანსი ისაა, რომ წაგებამდე შეძლებთ დეპოზიტის ანაზღაურებას და ცოტას შოვნას;

  • ასევე არასასურველია საკეტის გამოყენება, თუ აბსოლუტურად აუცილებელი არ არის, მაშინ ციხის დატოვება საკმაოდ რთულია;
  • ასევე უკეთესია არ გამოიყენოთ სიგნალები გარედან. გარედან სიგნალები ნიშნავს, მაგალითად, გამყიდველების/მყიდველების რაოდენობის შედარებას, ტრეიდერების უმრავლესობის განწყობის სხვადასხვა მაჩვენებელს და ა.შ. მაგრამ ასევე არის უამრავი რესურსი, რომლის მოსმენაც შეგიძლიათ, მაგალითად, Autochartist. იძლევა კარგ სიგნალებს გრაფიკულ შაბლონებზე დაყრდნობით;
  • ასევე უკეთესია არ გამოიყენოთ ტალღის ანალიზის ელემენტები (მინიმუმ დამწყებთათვის). მართალია, აქ არის გამონაკლისები, მაგალითად, Wolfe Waves-ზე ვაჭრობა ეფუძნება ზუსტად ტალღის ანალიზს, მაგრამ ეს არ არის განსაკუთრებით რთული.

მარტივი ინდიკატორის სტრატეგიის შემუშავება

დავუშვათ, რომ სტრატეგიის მთავარი იდეა არის ვაჭრობა ექსკლუზიურად ტენდენციის მიმართულებით. უფრო მეტიც, თქვენ შეხვალთ ბაზარზე არა ტენდენციის გაჩენის მომენტში, რომელიც საკმაოდ სარისკოა, არამედ მცირე კორექციის დასრულების შემდეგ.

სტრატეგია უნდა მუშაობდეს თითქმის ნებისმიერ სავალუტო წყვილზე, ეს აუცილებელია, რადგან დიდი დროის გამო, სიგნალები არც თუ ისე ხშირად მოხდება. ასე რომ, სიტუაცია შეფასდება ერთდროულად 5-7 სავალუტო წყვილის გამოყენებით. რაც შეეხება ვადებს, D1 შესაფერისია, ჩვენ ვიწყებთ იქიდან, რომ ფორექსი საწყის ეტაპზე მხოლოდ ძირითადი სამუშაოს დამატებაა, ამიტომ ჩვენ ვაჭრობთ ყოველდღიურ სანთლებზე.

ახლა თქვენ უნდა გადაწყვიტოთ ზუსტად როგორ განისაზღვროს შესვლის მომენტი. ტენდენციის იდენტიფიცირების მრავალი ვარიანტი არსებობს:

  • ვიზუალურად - მაგრამ თვალის დახუჭვა არ მოგცემთ საშუალებას შეიმუშაოთ მკაფიო სავაჭრო წესები;
  • ერთი ან მეტი მოძრავი საშუალოს გამოყენება;
  • ADX ინდიკატორის მნიშვნელობის მიხედვით, თუ 30-ზე მეტია, მაშინ არის ძლიერი ტენდენცია, 20-ზე ნაკლები, ბაზარი მშვიდია;
  • გრაფიკული კონსტრუქციების გამოყენება;
  • Bollinger Bands საშუალებას გაძლევთ შეაფასოთ ტენდენციის სიძლიერე არხის ზედა და ქვედა საზღვრებს შორის მანძილის მიხედვით.

ზოგადად, ბევრი ვარიანტია, მაგრამ რადგან სტრატეგია უნდა იყოს რაც შეიძლება მარტივი, ჩვენ ყურადღებას გავამახვილებთ მოძრავ საშუალო მაჩვენებლებზე. უფრო სწორად, ერთი MA, ჩვენ ვიმსჯელებთ ტენდენციის მიმართულებასთან შედარებით ფასის პოზიციით. თქვენ შეგიძლიათ დაიწყოთ პერიოდებით, რომლებიც საშუალოდ ფასს ატარებენ მთელი პერიოდის განმავლობაში (კვირა, თვე, კვარტალი და ა.შ.), მაგალითად, 20 იქნება საშუალო ფასი გასული თვის განმავლობაში. ყველაზე რთული არის შესაბამისი MA პერიოდის არჩევა, მაგრამ აქ მოგიწევთ საცდელი და შეცდომით გაგრძელება.

ვაჭრობის მთავარი იდეა შემდეგი იქნება: ველოდებით ტენდენციის მოძრაობის გამოჩენას, შემდეგ ხდება კორექტირება ერთი დღის განმავლობაში, მისი დასრულების შემდეგ გარიგება დაიდება. თუ ეს ყველაფერი წარმოდგენილია მკაფიო წესების სახით, მაშინ მოქმედებების ალგორითმი ასე გამოიყურება (შესყიდვების მაგალითის გამოყენებით):

  • პირველ რიგში ვამოწმებთ ფასის პოზიციას MA-სთან შედარებით, ფასი უნდა იყოს ხაზის ზემოთ;
  • შემდეგ ჩვენ უნდა ვიპოვოთ ტრენდული მოძრაობა, გვჭირდება სანთელი დიდი სხეულით და პატარა ჩრდილებით (სასურველია, რომ ჩრდილის ღირებულება არ აღემატებოდეს სანთლის კორპუსის ზომის 10-15%-ს);
  • მას უნდა მოჰყვეს სანთელი მცირე დღიური დიაპაზონით (მანძილი მაღალიდან ახლომდე). დახურვის ფასმა არ უნდა მიაღწიოს წინა დღის 50%-ს - ამ დღეს ხდება ფასის კორექტირება.

ამ შემთხვევაში კორექტირება შეიძლება მოხდეს 2 სცენარის მიხედვით:

  • როდესაც ქვემოთ გრძელი ჩრდილის მქონე სანთელი ჩამოყალიბდება, შეგიძლიათ ვაჭრობის გახსნა დაუყოვნებლივ დღის ბოლოს. სანთლის ეს ფორმა მიუთითებს იმაზე, რომ შესწორება უკვე დასრულებულია;
  • შესაძლო ვარიანტია, როდესაც კორექტირების სანთელი იხურება მინიმუმამდე, ე.ი. დაბრუნება ჯერ არ დასრულებულა, ამ შემთხვევაში თქვენ უნდა დაელოდოთ შემდეგი სანთლის დახურვას, თუ ის თეთრია, შეგიძლიათ გახსნათ გრძელი პოზიცია.

რაც შეეხება პოზიციის შენარჩუნებას და დამცავ ბრძანებებს, სტოპ-ლოსი უნდა განთავსდეს სულ მცირე დიდი კორპუსის სანთლის შუას მიღმა. სამიზნე დონის მისაღებად საკმარისია ერთი და იგივე სანთლის ღირებულების გამოყოფა შესყიდვის დონიდან, შეგიძლიათ გამოიყენოთ ტრეილინგი.

სტრატეგიის წესები ჩამოყალიბებულია, რჩება მხოლოდ მისი მოქმედების გამოცდა. პრაქტიკა გვიჩვენებს, რომ ასეთი მარტივი ალგორითმიც კი აწარმოებს მომგებიანი გარიგებების ნახევარზე მეტს (და თუ ვაჭრობას ადრე ნულამდე გადაიყვანთ, ზარალის ალბათობა მცირდება).

შესვლა ტენდენციის დასაწყისში

ზემოთ შემოთავაზებული TS გამოტოვებს ტენდენციის მოძრაობის ნაწილს, მაგრამ არ საჭიროებს დიდ დროს ბაზრის ანალიზისთვის. თუ შესაძლებელია დღის ფასის ქცევის მონიტორინგი, მაშინ შეგიძლიათ სცადოთ ატაროთ ტენდენცია მისი ჩამოყალიბების დასაწყისშივე. ასე რომ, სტრატეგიის მთავარი იდეაა ბაზარზე შესვლა მას შემდეგ, რაც ფასი დაიწყებს ჰორიზონტალური არხის გასვლას.

და აქ ძალიან მნიშვნელოვანია საიმედო სიგნალის მიღება დროულად, ტენდენციის დასაწყისშივე. მოძრავი საშუალო მაჩვენებლები შეიძლება კვლავ მოვიდეს სამაშველოში, მაგრამ ისინი გამოყენებული იქნება გარკვეულწილად განსხვავებულად, ვიდრე წინა სტრატეგიაში. თქვენ შეგიძლიათ აიღოთ რამდენიმე MA სხვადასხვა პერიოდით და განსაჯოთ ტენდენციის ფორმირება მათი მდებარეობის მიხედვით ერთმანეთთან შედარებით.

ეს არ არის რევოლუციური მიდგომა ბილ უილიამსმა მსგავსი რამ გამოიყენა თავის ცნობილ ალიგატორში. ასე რომ, ეს მაჩვენებელი შეიძლება იქნას მიღებული, როგორც TS- ის საფუძველი.

თუ H1-ს დავამატებთ სტანდარტულ პარამეტრებს, დავინახავთ, რომ ის იძლევა უამრავ ცრუ სიგნალს. ამისთვის ბაზარზე შევალთ მომლოდინე შეკვეთით და მისი განლაგების დონე განისაზღვრება ფრაქტალების გამოყენებით.

შედეგად, სამუშაო ნაკადი ასე გამოიყურება (შესყიდვების მაგალითის გამოყენებით):

  • ჩვენ ვეძებთ ბრტყელ ფართობს სქემაზე (ალიგატორის ყველა ხაზი ქაოტურად არის გადაჯაჭვული ერთმანეთთან);
  • შემდეგი, დაგჭირდებათ ფრაქტალის სანთელი (და ის უნდა განთავსდეს ხაზების ზემოთ, ქვედა ჩრდილთან შეხების გარეშეც კი);
  • ყიდვის შეჩერების ორდერი იდება მის მაქსიმუმზე მაღლა, ხოლო დამცავი ორდერი იდება კონსოლიდაციის ზონის ქვედა საზღვრის მიღმა;
  • TP ან ფიქსირდება (50-70 p), ან გამოიყენეთ უკანა გაჩერება. ზოგადად, ტენდენციის მოძრაობის სიძლიერის პროგნოზირება საკმაოდ რთულია, ამიტომ სჯობს გამოვიყენოთ უკანა გაჩერება, ვიდრე ფიქსირებული TP ან განვსაზღვროთ სამიზნე დონე იგივე ტექნიკური ანალიზის გამოყენებით.

ეს მაგალითი არ არის ნულიდან სტრატეგიის შემუშავება, არამედ უკვე ცნობილი სტრატეგიის მცირე ადაპტაცია თანამედროვე ბაზარზე.

მარტივი კომბინირებული სისტემის მაგალითი

იდეა მაინც იგივეა - ჩანაწერი შესწორების ბოლოს, მაგრამ ამ პრობლემას სხვაგვარად მოვაგვარებთ. მიზანი იგივე რჩება - განვსაზღვროთ შესწორების დასრულების მომენტი და შევიდეთ ტენდენციის მიმართულებით, მაგრამ თუ ადრე ვიყენებდით მოძრავ საშუალოს, ახლა გამოვიყენებთ Fibo დონეებს და ოსცილატორს უკან დაბრუნების დასრულების დასადგენად.

ჩვენ დავინტერესდებით გამოხატული ტენდენციის მოძრაობა, რომელიც ასევე შეიძლება განისაზღვროს ვიზუალურად. ამის შემდეგ, თქვენ უბრალოდ უნდა გაჭიმოთ მასზე Fibo დონეები, ეს აუცილებელია კორექტირების დასრულების პოტენციური დონის დასადგენად. ყველაზე მნიშვნელოვანი კორექტირების დონეა 38.2% დაშვებულია მოხსნაზე ვაჭრობა 50% და 61.8%.

მაგრამ ის ფაქტი, რომ ფასი ეხება ფიბოს დონეს, საკმარისი არ არის. Stochastic-ს შეუძლია გაუმკლავდეს ამ ამოცანას საკმაოდ კარგად (შეგიძლიათ სცადოთ RSI-ის გამოყენება იმავე მიზნით). მაგალითად, ყიდვის ტრანზაქციისთვის ფასი უნდა იყოს კორექტირების დონესთან ახლოს, ხოლო Stochastic იმ დროს უნდა იყოს გადაჭარბებული გაყიდვის ზონაში.

მას შემდეგ, რაც ფასი შეეხო დონეს, ჩვენ ველოდებით სანამ Stochastic არ დატოვებს გადაჭარბებული გაყიდვის ზონას და იყიდის. გაჩერება შეიძლება განთავსდეს შემდეგი კორექტირების დონის მიღმა, და TP შეიძლება განთავსდეს სულ მცირე ბოლო მაღალ დონეზე, უკან დახევის დაწყებამდე.

ფიბოს დონეები და ოსცილატორი მხოლოდ მინიმალურია, რაც საჭიროა სიგნალის მისაღებად. თუ სასურველია, შეგიძლიათ გაართულოთ სისტემა დამატებითი ფილტრების შემოღებით.

ტექნიკურ ანალიზზე დაფუძნებული სტრატეგიები

თუ ტექნიკური ანალიზი გამოიყენება მისი სუფთა სახით, მაშინ ამოცანა გარკვეულწილად გამარტივდება, არ არის საჭირო მანქანის შემუშავება ნულიდან. არსებობს მთელი რიგი ტექნიკა და ინსტრუმენტები, რომელთა ეფექტურობა გამოცდილია წლების განმავლობაში და ტრეიდერს მხოლოდ შესაბამისის არჩევა და კონსტრუქციებში გამოყენება შეუძლია.
პრინციპში, წარმატებული ვაჭრობისთვის საკმარისია:

  • ტენდენციის ხაზები - ჩვენ ვაშენებთ მათ სხვადასხვა ვადებზე, დაწყებული ყველაზე მაღალიდან და თანდათანობით დაღმავალი სამუშაოზე;
  • Fibo დონეზე, ისინი უნდა იყოს გადაჭიმული ისტორიაში ფასების მნიშვნელოვან მოძრაობებამდე. 38.2, 50 და 61.8% კორექტირების დონეები იქნება საკვანძო მნიშვნელობა, პრაქტიკა აჩვენებს, რომ კორექტირება ყველაზე ხშირად ამ ნიშნით სრულდება;
  • MT4 ასევე ახორციელებს უამრავ სხვა ტექნიკური ანალიზის ხელსაწყოს, მაგალითად, Andrews pitchforks, Gann ინსტრუმენტების კომპლექტს, რამდენიმე ტიპის არხს და ა.შ.

მაგრამ საკმაოდ ზუსტი პროგნოზისთვის, Fibo-ს დონეები და ტრენდული ხაზები საკმარისია, როგორც წესი, დონეებისა და ხაზების კონცენტრაციის სფეროები. ვაჭრობა შეიძლება განხორციელდეს როგორც ბრეაუუტისთვის, ასევე დონეებიდან და ხაზებიდან დასაბრუნებლად.

რაც შეეხება დამატებით ფილტრებს, შეგიძლიათ დაამატოთ სასანთლე შაბლონები და რაიმე სახის ინდიკატორი განსხვავებების მოსაძებნად (იგივე Stochastic ან MACD). შეგიძლიათ მეტი წაიკითხოთ ტექნიკური ანალიზის გამოყენების შესახებ.

ფილტრები სავაჭრო სისტემებისთვის

ნებისმიერი სავაჭრო მანქანა, მაშინაც კი, თუ იდეა მუშაობს და ვაჭრობა ზოგადად მომგებიანია, წარმოქმნის უამრავ სიგნალს და ზოგიერთი მათგანი წამგებიანია. სისტემის წესების ჩამოყალიბების შემდეგ, შეგიძლიათ გამოიყენოთ მრავალი უნივერსალური ფილტრი, რაც ხელს შეუწყობს მომგებიანი/არამომგებიანი ტრანზაქციების თანაფარდობის გაუმჯობესებას.

არსებობს მთელი რიგი ფილტრები, რომლებიც მოერგება თითქმის ნებისმიერ სტრატეგიას:

  • მდგომარეობა უფრო მაღალ ვადებში. თუ, მაგალითად, სტრატეგია H1-ზე ხორციელდება მექანიკური სტრატეგიის მიხედვით, მაშინ არ იქნება ურიგო, თუ რა ხდება H4-ზე და D1-ზე;
  • საშუალო დღიური დიაპაზონი, რაც ნიშნავს მანძილს, რომელსაც ფასი გადის საშუალოდ დღეში, ვაჭრობის დროს, ეს ხელს შეუწყობს სიგნალების რაოდენობის გაფილტვრას; წარმოვიდგინოთ, რომ დღის განმავლობაში ფასი მოძრაობს საშუალოდ 100-120 პიპსით, თუ ერთ დღეს საღამოს ფასმა უკვე გაიარა 90-100 პუნქტი ერთი მიმართულებით და TS იძლევა სიგნალს ბაზარზე შესვლის შესახებ. იგივე მიმართულება, მაშინ აზრი აქვს მის იგნორირებას, სტატისტიკა ამბობს, რომ ტრეფიკი ნაკლებად სავარაუდოა გაგრძელდეს ამ დღეს;

Მნიშვნელოვანი! ამ წესის დაცვა გამოიწვევს იმ ფაქტს, რომ ზოგიერთი მომგებიანი ვაჭრობა გამოტოვებული იქნება, მაგრამ გაიზრდება მომგებიანი/წაგებული ვაჭრობის თანაფარდობა.

  • სიგნალის ჩამოყალიბების შემდეგ სანთლების რაოდენობასაც აქვს მნიშვნელობა, არის 5 სანთლის ფილტრიც კი, რაზეც უფრო დეტალურად ვისაუბრებთ.

როდესაც TS გასცემს სიგნალს, მაშინ იდეალურად სიტუაცია უნდა დაიწყოს ჩვენს სასარგებლოდ განვითარება გარიგების დადებისთანავე (იგულისხმება მომდევნო 1-3 სანთელზე). თუ ეს არ მოხდა, მაშინ რაც უფრო მეტი დრო გავიდა ტრანზაქციის დადებიდან, მით ნაკლები გავლენა ექნება ბაზარზე იმ ფაქტორებს, რომლებსაც მნიშვნელობა ჰქონდა, როდესაც ტრეიდერი შემოვიდა ბაზარზე. მათი გავლენა დროთა განმავლობაში ქრება.

კრიტერიუმად შეგიძლიათ აიღოთ 5 სანთელი, თუ გარიგების დადების შემდეგ ფასი არ გადავიდა მომგებიანი მიმართულებით, მაშინ უმჯობესია გარიგება ხელით დახუროთ. ეს ნიშნავს სცენარს, სადაც სქემა რჩება ადგილზე, მაგრამ თუ ფასი წავიდა წამგებიანი მხარეზე, მაშინ ეს ფილტრი არ გამოიყენება.

ეს პირობა ვრცელდება თითქმის ყველა ვადაზე (მ1-მ5-ის გარდა). რა თქმა უნდა, ჯერ კიდევ არსებობს იმის შესაძლებლობა, რომ ფასი, ერთი ნიშნის ირგვლივ, სწორი მიმართულებით წავიდეს, მაგრამ ჩვენი არჩევანი სტაბილურობაა. უმჯობესია შესწიროთ რამდენიმე მომგებიანი ვაჭრობა, მაგრამ მოერიდეთ 3-5 წამგებიანი.

შეჯამება

სავაჭრო სისტემის გარეშე მუშაობის დაწყება სიკვდილს ჰგავს, ეს ყველა ტრეიდერმა უნდა ახსოვდეს. ამ შემთხვევაში ანაბრის დაკარგვა მხოლოდ დროის საკითხია.

შესაფერისი მანქანის არჩევა არ არის რთული, უფრო მეტიც, შეგიძლიათ იპოვოთ კარგი სამუშაო სისტემები საზოგადოებრივ დომენში. თქვენ ასევე შეგიძლიათ ინერვიულოთ საკუთარი სტრატეგიის შექმნაზე, მით უმეტეს, რომ ეს არ მოითხოვს პროგრამირების ენების ცოდნას, თქვენ უბრალოდ უნდა გქონდეთ იდეა და მინიმუმ საბაზისო ცოდნა, თუ როგორ მუშაობს ბაზარი და რა ინდიკატორები გამოიყენება რა მიზნებისთვის.

პროცესი თავისთავად მოგვაგონებს სამშენებლო ნაკრების აწყობას - ჯერ ვაყენებთ პრობლემას, შემდეგ კი უბრალოდ ვირჩევთ მის გადასაჭრელად საჭირო ინსტრუმენტებს. ისტორიის შემოწმების შემდეგ, შეგიძლიათ გააგრძელოთ TS ტესტი დემო ან ცენტ ანგარიშზე.



 

შეიძლება სასარგებლო იყოს წაკითხვა: