Kendiniz pc için bir strateji nasıl yapılır. Sıfırdan Strateji Oluşturma - Kapsamlı Bir Kılavuz

Günümüzde birçok ticaret stratejisini kolayca bulabilirsiniz, tek sorun çoğu ya çalışmıyor ya da yeterince etkili değil. Böyle bir durumda, sıfırdan bir strateji oluşturmak, soruna mükemmel bir çözümdür.

Ve her özel durumda bir aracın yaratılması farklı olsa da, ana aşamalar aynı kalır. Yani, tüm aşamalardan tutarlı bir şekilde geçen evrensel bir rehber gibi bir şey yaratabilirsiniz, sonunda tamamen uygulanabilir bir sistem elde edeceğiz.

Her ne kadar fikirle başlayıp bir filtrenin tanıtılması ve TS'nin son ayarının akılda tutulmasıyla biten sıfırdan bir strateji oluşturma seçeneğini düşünecek olsak da, bu, tüm hazır sistemlerin hemen atılması gerektiği anlamına gelmez. bilerek etkisiz. Temel olarak birkaç TS kullanılabilir ve yanlış sinyalleri filtrelemek için birkaç filtre eklenebilir.

Strateji oluşturmanın ana aşamaları

Rastgele 5-7 gösterge alır ve bunlardan çalışan bir TS oluşturmaya çalışırsanız, uygun bir şey pek işe yaramaz. İlk olarak, stratejinin ana fikrini düşünmeniz ve ancak daha sonra araç seçimine geçmeniz gerekir. Aşağıdaki eylem sırasını önerebilirsiniz:

  • sistem sıfırdan oluşturulduysa, ilk adım fikir üzerinde çalışmaktır. Bu aşamada, sadece ticaret tarzının ne olacağına karar vermeniz yeterlidir, örneğin, alım satımlar trend boyunca mı yoksa tersine mi gerçekleştirilecek veya belki de strateji yalnızca bir koparma olarak planlanmış olabilir. Şimdiye kadar, ayrıntıları düşünmüyoruz;
  • Uygun bir ticaret stili seçtikten sonra detaylar üzerinde çalışmaya başlayabilirsiniz. Enstrümanları seçmeden önce, çalışan döviz çiftlerini ve zaman dilimlerini, işlem süresini vb. net bir şekilde tanımlamanız gerekir;

Önemli! Bir zaman aralığı seçerken, özellikle tüccarın kısa zaman aralıklarında spekülasyon deneyimi yoksa, çok sığ olmak istenmez. Yeni başlayanlar için genellikle H1-H4'ün altına inmemek daha iyidir, en uygun zaman aralığını seçme hakkında daha fazla bilgi edinebilirsiniz.

  • bir sonraki aşama uygun enstrümanların seçimidir ve burada seçim bolluğu tüccar ile acımasız bir şaka oynayabilir, çünkü emrinde düzinelerce gösterge, şamdan, dalga, teknik, temel analiz kullanma yeteneği vardır. Tüm bu çeşitlilikten, amaçlanan ticaret tarzına en uygun birkaç enstrüman seçmeniz gerekir;
  • Herhangi bir stratejinin ana kurallarından biri, alınan sinyalin birkaç filtre tarafından onaylanması gerektiğidir, ancak sayılarının sınırlandırılması arzu edilir. Örneğin, gösterge stratejileri için gösterge sayısının 3-4'ü aşması istenmez, aksi takdirde sinyallerde karışıklık olur ve teknik analiz kullanılarak çalışılması planlanıyorsa, göstergeler hiç yardımcı rol oynayacaktır. ;
  • pozisyon izleme kuralları geliştirildi, sonuç olarak, herhangi bir senaryo için bir eylem algoritması elde edilmelidir;
  • son aşama - aracı önce geçmişe göre, sonra bir demo hesabında veya daha iyisi gerçek bir kuruş hesabında çalıştırmak. Ana hedef, stratejinin gerçek koşullarda uygulanabilirliğini test etmektir ve gerçek bir hesap (bir sent bile olsa), öforiden kaybın acısına kadar tüm duyguları hissetmenize izin verecektir.

Ayrıca aracın karmaşıklığı üzerinde durmamanızı da tavsiye edebilirsiniz. Uygulama, aşırı karmaşıklığın hiçbir şekilde verimliliğin bir göstergesi olmadığını göstermektedir. Nasıl daha basit sistem, ticaret yapmak o kadar kolay.

Araçta neler bulunmalı

Strateji oluşturmak biraz kurucu gibidir, sadece detayları iyi seçmeniz gerekir. Bir araç oluştururken şunları kullanabilirsiniz ve kullanmalısınız:

  • göstergeler. Üstelik ne sayılarının ne de aşırı karmaşıklığının peşine düşmemelisiniz, tamamen mekanik araçlarda bile 3-5 adet yeterlidir;
  • grafik desenleri - iyi bilinen bayraklar, flamalar, üçgenler, baş ve omuzlar, çift dipler ve üstler hala iyi çalışıyor;
  • grafik yapılar;
  • Fibo seviyeleri;
  • temel analiz unsurları - artık yalnızca haberlerden para kazanmak zor, ancak ticarette ekonomik takvimi dikkate almak gerekiyor. En azından ABD veya Avrupa için önemli istatistiklerin yayınlanmasından önce işlemleri başa baş olacak şekilde yeniden düzenlemek, hatta karı tamamen kapatmak için.

Kullanımı şüpheli olan birkaç teknik vardır:

  • martingale başlangıçta kârsız bir taktiktir, başarı için tek şans, tahliye zamanından önce depozito miktarını geri almak ve biraz kazanmak mümkün olacaktır;

  • aşırı ihtiyaç duymadan kilitleme de istenmez, o zaman kilitten çıkmak oldukça zordur;
  • dışarıdan gelen sinyalleri de kullanmamak daha iyidir. Dışarıdan gelen sinyaller, örneğin, satıcıların / alıcıların sayısının karşılaştırılması, çoğu tüccarın ruh halinin çeşitli endeksleri vb. anlamına gelir. Ancak dinleyebileceğiniz bir dizi kaynak da vardır, örneğin, Autochartist iyi verir grafik desenleri üzerindeki sinyaller;
  • dalga analizi unsurlarını kullanmamak da daha iyidir (en azından yeni başlayanlar için). Burada istisnalar olmasına rağmen, örneğin Wolfe Waves'e göre ticaret, tam olarak dalga analizine dayanmaktadır, karmaşıklık açısından farklılık göstermez.

En basit gösterge stratejisinin geliştirilmesi

Stratejinin ana fikrinin sadece trend doğrultusunda ticaret yapmak olduğunu varsayalım. Üstelik oldukça riskli olan trendin başladığı anda değil, küçük bir düzeltmenin tamamlanmasından sonra piyasaya girmek mümkün olmayacaktır.

Strateji hemen hemen her döviz çifti üzerinde çalışmalıdır, bu gereklidir çünkü geniş zaman çerçevesi nedeniyle sinyaller çok sık görünmeyecektir. Böylece durum 5-7 döviz çifti için eş zamanlı olarak değerlendirilecektir. Zaman çerçevesine gelince, D1 yapacak, Forex'in açık olduğunu varsayıyoruz İlk aşama- sadece ana çalışmaya ek, bu nedenle günlük mumlarla işlem yapacağız.

Şimdi, giriş anının tam olarak nasıl belirleneceğine karar vermeniz gerekiyor. Bir eğilimi belirlemek için birçok seçenek vardır:

  • görsel - ancak gözle değerlendirme, net ticaret kuralları geliştirmenize izin vermez;
  • bir veya daha fazla hareketli ortalama kullanmak;
  • ADX göstergesinin değerine göre, 30'dan fazlaysa - o zaman güçlü bir eğilim, 20'den az - piyasada sakin;
  • grafik yapıları kullanma;
  • Bollinger Bantları, bir trendin gücünü, kanalın üst ve alt sınırları arasındaki mesafeye göre değerlendirmenize olanak tanır.

Genel olarak birçok seçenek var, ancak strateji mümkün olduğunca basit olduğu için hareketli ortalamalara odaklanacağız. Daha doğrusu, bir MA, trendin yönünü fiyatın ona göre pozisyonuna göre değerlendireceğiz. Tüm bir zaman periyodunda (hafta, ay, çeyrek, vb.) fiyatın ortalamasını alan periyotlarla başlayabilirsiniz, örneğin, 20 - fiyatın geçen aya göre ortalamasını alır. En zor şey uygun bir MA dönemi seçmektir, ancak burada deneme yanılma yoluyla hareket etmeniz gerekecektir.

Ticaretin ana fikri aşağıdaki gibi olacaktır - bir anlaşma imzalandıktan sonra bir gün içinde bir düzeltmenin ardından bir trend hareketinin tezahürünü bekliyoruz. Tüm bunlar açık kurallar şeklinde sunulursa, eylem algoritması şöyle görünecektir (satın alma örneği için):

  • ilk olarak, MA'ya göre fiyatın konumunu kontrol ederiz, fiyat çizginin üzerinde olmalıdır;
  • sonra bir trend hareketi bulmamız gerekiyor, büyük gövdeli ve küçük gölgeli bir şamdana ihtiyacımız var (gölge boyutunun mum gövdesi boyutunun %10-15'ini geçmemesi istenir);
  • ardından küçük bir günlük aralığa sahip bir mum çubuğu gelmelidir (Yüksek ile Kapanış arasındaki mesafe). Kapanış fiyatı bir önceki günün %50 seviyesine ulaşmamalıdır - bu gün fiyat düzeltilir.

Bu durumda düzeltme 2 senaryoda gerçekleşebilir:

  • Aşağıdan uzun bir gölgeye sahip bir şamdan oluştuğunda, günün kapanışında hemen bir işlem açabilirsiniz. Bu mum çubuğu şekli, düzeltmenin zaten sona erdiğini gösterir;
  • düzeltme mum çubuğu minimumda kapandığında bir değişken mümkündür, yani. geri alma henüz tamamlanmadı, bu durumda bir sonraki mum çubuğunun kapanmasını beklemeniz gerekir, eğer beyaz ise, uzun bir pozisyon açabilirsiniz.

Pozisyon takibi ve koruma emirlerinde ise stop loss en az büyük gövdeli mumun ortasına yerleştirilmelidir. Hedef seviyeyi elde etmek için aynı mumun değerini alış seviyesinden ertelemeniz yeterlidir; takip eden bir stop kullanabilirsiniz.

Stratejinin kuralları oluşturuldu, sadece onu eylemde test etmek için kaldı. Uygulama, böyle basit bir algoritmanın bile karlı işlemlerin yarısından fazlasını ürettiğini göstermektedir (ve işlem erken sıfıra ayarlanırsa, kayıp olasılığı azalır).

Bir trendin başlangıcındaki giriş

Yukarıda önerilen TS, trend hareketinin bir kısmını atlar, ancak piyasayı analiz etmek için fazla zaman gerektirmez. Günün fiyat davranışını takip etmek mümkünse, oluşumunun en başında trendi sürmeyi deneyebilirsiniz. Dolayısıyla stratejinin ana fikri, fiyat yatay kanaldan çıkmaya başladıktan sonra piyasaya girmektir.

Ve burada, trendin başlangıcında, zamanında güvenilir bir sinyal almak çok önemlidir. Hareketli ortalamalar yine kurtarmaya gelebilir, ancak önceki stratejiden biraz farklı şekilde kullanılacaklardır. Farklı periyotlara sahip birkaç MA alabilir ve birbirlerine göre konumlarına göre bir trendin oluşumunu değerlendirebilirsiniz.

Bu devrim niteliğinde bir yaklaşım değil, benzer bir şey Bill Williams tarafından ünlü Timsah'ında kullanıldı. Dolayısıyla bu gösterge TS için bile temel alınabilir.

Bir Timsah eklerseniz standart ayarlar H1'de çok fazla yanlış sinyal verdiği açık, bizim görevimiz onları ayıklamak. Bunu yapmak için piyasaya bekleyen bir emirle gireceğiz ve yerleştirme seviyesi Fraktallar kullanılarak belirlenecek.

Sonuç olarak, çalışma şeması şöyle görünecektir (satın alma örneğini kullanarak):

  • grafikte düz bir alan aramak (tüm Timsah çizgileri rastgele iç içe geçmiştir);
  • daha sonra bir fraktal muma ihtiyaç vardır (ve alt gölge ile bile onlara dokunmadan çizgilerin üzerine yerleştirilmelidir);
  • maksimumun hemen üzerinde bir satın alma durdurma emri verilir ve konsolidasyon bölgesinin alt sınırının dışına bir koruma emri verilir;
  • TR ya sabittir (50-70 p) ya da takip eden bir durdurma kullanır. Genel olarak, trend hareketinin gücünü tahmin etmek oldukça zordur, bu nedenle sabit bir TP yerine takip eden bir stop kullanmak veya aynı teknik analizi kullanarak hedef seviyeyi belirlemek daha iyidir.

Bu örnek, sıfırdan bir stratejinin geliştirilmesi değil, modern pazar için zaten bilinen bir stratejinin küçük bir uyarlamasıdır.

Basit bir birleşik sistem örneği

Fikir hala aynı - giriş düzeltmenin sonunda, ancak bu sorunu farklı bir şekilde çözeceğiz. Hedef aynı kalır - düzeltmenin tamamlanma anını belirlemek ve trend yönünde girmek, ancak daha önce hareketli ortalamayı kullandıysak, şimdi geri dönüşün tamamlandığını belirlemek için Fibo seviyelerini ve osilatörü kullanacak.

Belirgin bir trend hareketiyle ilgileneceğiz, görsel olarak da tanımlanabilir. Bundan sonra, sadece Fibo seviyelerini ona uzatmanız gerekir, bu, düzeltmenin potansiyel tamamlanma seviyelerini belirlemek için gereklidir. En önemlisi %38.2'lik düzeltme seviyesidir; %50 ve %61.8'lik bir geri tepme ile işlem yapmasına izin verilir.

Ancak Fibo fiyatının bu seviyeye dokunması bile yeterli değil, teyit gerekiyor. Stokastik bu görevle oldukça iyi başa çıkabilir (aynı amaç için RSI'yı uygulamayı deneyebilirsiniz). Örneğin, bir alış anlaşması için fiyatın düzeltme seviyesine yakın olması gerekir ve o sırada Stokastik aşırı satım bölgesindedir.

Fiyat seviyeye ulaştıktan sonra Stokastik aşırı satım bölgesinden çıkıp alım yapana kadar bekleriz. Bir sonraki geri çekilme seviyesinin arkasına bir durdurma yerleştirilebilir ve geri çekilmenin başlamasından önce en azından son en yüksek seviyeye bir TP yerleştirilebilir.

Fibo seviyeleri ve bir osilatör, bir sinyal almak için gereken minimum değerlerdir. İstenirse, ek filtreler getirerek sistemi karmaşıklaştırabilirsiniz.

Teknik analize dayalı stratejiler

Teknik analiz saf haliyle kullanılacaksa, görev biraz basitleştirilmiştir, artık bir TS'yi sıfırdan geliştirmek gerekli değildir. Etkililiği yıllar içinde test edilmiş bir dizi teknik ve araç vardır ve tüccar sadece uygun olanları seçebilir ve bunları inşa ederken kullanabilir.
Prensip olarak, başarılı ticaret için yeterlidir:

  • trend çizgileri - onları eskisinden başlayarak ve kademeli olarak çalışan zamana inerek farklı zaman dilimlerinde oluşturuyoruz;
  • Fibo seviyeleri, tarihteki önemli fiyat hareketlerine kadar esnetilmelidir. %38,2, %50 ve %61,8'lik düzeltme seviyeleri kilit öneme sahip olacaktır, uygulama, düzeltmenin çoğunlukla bu seviyelerde sona erdiğini göstermektedir;
  • MT4 ayrıca bir dizi başka teknik analiz aracı da uygular; örneğin, Andrews'in dirgen, Gann araç kutusu, çeşitli kanal türleri, vb.

Ancak oldukça doğru bir tahmin için Fibo seviyeleri ve trend çizgileri yeterlidir, seviye alanları ve çizgi kümeleri genellikle destek / direnç görevi görür. Ticaret, hem bir koparmada hem de seviyelerden ve çizgilerden bir geri tepmede gerçekleştirilebilir.

Ek filtrelere gelince, şamdan desenleri ve sapmaları bulmak için bazı göstergeler ekleyebilirsiniz (aynı Stokastik veya MACD). Teknik analiz uygulaması hakkında daha fazla bilgi edinebilirsiniz.

Ticaret sistemleri için filtreler

Herhangi bir TS, fikir işe yarasa ve genel olarak ticaret karlı olsa bile, birçok sinyal üretir ve bunlardan bazıları kârsızdır. Sistemin kurallarının oluşturulmasından sonra, karlı / kârsız işlemlerin oranını sıkılaştırmaya yardımcı olacak bir dizi evrensel filtre kullanabilirsiniz.

Hemen hemen her stratejiye uygun bir dizi filtre vardır:

  • daha yüksek zaman dilimlerinde durum. Örneğin, strateji mekanik bir stratejiye göre H1 üzerinde yürütülürse, o zaman H4 ve D1'de neler olduğuna bakmak gereksiz olmayacaktır;
  • ortalama günlük aralık, yani fiyatın günlük ortalama kat ettiği mesafe; gün içi ticarette bu, bir dizi sinyali filtrelemeye yardımcı olacaktır. Fiyatın günde ortalama 100-120 pip üzerinden geçtiğini, günlerden birinde fiyatın akşama kadar bir yönde 90-100 puan geçtiğini ve TS'nin aynı anda piyasaya girmek için bir sinyal verdiğini düşünün. yön, yani, onu görmezden gelmek mantıklı, istatistikler, bu gün hareketin devam etme olasılığının düşük olduğunu söylüyor;

Önemli! Bu kurala uyulması, bazı karlı işlemlerin kaçırılmasına, ancak karlı/karsız işlemlerin oranının artmasına neden olacaktır.

  • sinyalin oluşumundan sonraki mum sayısı da önemlidir, hatta 5 mumluk bir filtre vardır, üzerinde daha ayrıntılı olarak duracağız.

TS bir sinyal verdiğinde, ideal olarak, anlaşmanın tamamlanmasından hemen sonra durum bizim lehimize gelişmeye başlamalıdır (yani sonraki 1-3 mumda). Bu olmazsa, işlem anından bu yana ne kadar çok zaman geçerse, tüccar piyasaya girdiğinde önemli olan faktörlerin piyasa üzerindeki etkisi o kadar az olacaktır. Etkileri zamanla kaybolur.

Bir kriter olarak, 5 mum alabilirsiniz, anlaşmanın tamamlanmasından sonra fiyat 5 mum için karlı bir yönde hareket etmediyse, anlaşmayı manuel olarak kapatmak daha iyidir. Bu, grafiğin yerinde kaldığı senaryo anlamına gelir, ancak fiyat kârsız tarafa geçerse, bu filtre uygulanmaz.

Bu koşul hemen hemen tüm zaman dilimleri için geçerlidir (m1-m5 hariç). Tabii ki, fiyatın bir işaret etrafında durduktan sonra doğru yönde gitme olasılığı hala var, ancak bizim seçimimiz istikrar. Birkaç karlı işlemi feda etmek daha iyidir, ancak kârsız 3-5 işlemden kaçının.

Özetleme

Ticaret sistemi olmadan başlamak ölüm gibidir, her tüccar bunu hatırlamalıdır. Bu durumda mevduatın boşaltılması sadece bir zaman meselesidir.

Uygun bir araç seçmek zor olmayacak, ayrıca kamuya açık alanda iyi çalışan sistemler bulabilirsiniz. Kendi stratejinizi oluşturmaya da özen gösterebilirsiniz özellikle bunun için programlama dilleri bilgisine ihtiyacınız olmadığı için piyasanın nasıl çalıştığı ve hangi göstergeler ve hangi amaçlar için bir fikre ve en azından temel bilgilere sahip olmanız yeterlidir. kullanılmış.

Sürecin kendisi bir kurucuyu bir araya getirmeyi andırıyor - önce bir görev belirledik ve sonra onu çözmek için gerekli araçları seçiyoruz. Geçmişi kontrol ettikten sonra, bir demo veya cent hesabında TS testine geçebilirsiniz.

Şirketinizin ülkemizdeki danışmanlık hizmetleri pazarındaki en güçlülerinden biri olduğunu düşünüyorum. Çok çeşitli yönetim konularına dokunmanız ve bunları yeterli kalite ve derinlikle ele almanız hoşuma gidiyor.Şirketinizin yayınlarında kendim için birçok yararlı şey buluyorum, çünkü profesyonellerin deneyimlerini tanımak, onlardan öğrenmek her zaman ilginçtir.

Borisyuk Yuri Alexandrovich, yönetim danışmanı, teknik bilimler doktoru

Öğrettiğiniz ustalık sınıfları döngüsünü gerçekten seviyorum.Şahsen, bir fabrika müdürü olarak yönetime yaklaşımlarımı değiştirmeye başladım. sizden alınan bilgiler sayesinde. Fabrikada yaptıklarıma ve gözlemlediklerime bir şekilde cevap verdi. O zamandan beri, Rusya'nın endüstriyel kapasitesinin ne kadar etkisiz olduğu ve potansiyelin ne kadar büyük olduğu ve bunun nasıl gerçekleştirilebileceği hakkında bir fikrim vardı. Farklı işletmelerin sorunlarıyla bizzat tanışarak (bazen arkadaşlar onları uzman olarak davet ediyor), ne kadar çok şey yapılabileceğini, hem verimliliğin hem de etkinliğin nasıl artırılabileceğini görüyorum.

Dryagin Oleg Borisoviç

Evet, ustalık derslerinizi seviyorum,çok sistematik bir yaklaşım, yüksek düzeyde malzeme bilgisi ve elbette, düşünülen konularda çok fazla pratik deneyim hissedilir. gerçeğinden etkileniyorum profesyonellik ve yüksek seviye Alexander ile konuya profesyonel olarak hakim olmak, zaten tanıdık olan şeylere farklı bakmamı sağlıyor. Benim açımdan, öyleçok önemli ve gerekli, bildiğiniz şeylere yeni bir şekilde bakmak, tk. sırasında operasyonel işçok sık göz "bulanıklaşır" ve aslında bariz şeyleri görmeyi bırakırsınız.

Elena Fedash, İK Direktörü, ATB Corporation, Dnepropetrovsk.

Bu yazıda bilinmeyen bir şeye değinmem pek olası değil. Ajax'ın ne olduğunu bilen herkes için tüm hesaplamalar basit ve anlaşılırdır. Gerçek zamanlı oyunlarda () istemci ve sunucunun nasıl birleştirileceği hakkında zaten bir makale yazdım. Bu yazımda da aynı sorunları sıra tabanlı oyunlara uygulandığında çözüyorum.

Öyleyse ne sıra tabanlı oyun? Aşağıdaki tanım wikipedia'da bulunabilir sıra tabanlı strateji - bu bir tür bilgisayar oyunları, ana özelliği, gerçek zamanlı stratejinin aksine oyuncuların sırayla olmasıdır.... Bu tanımı biraz basitleştirirdim:

  • Adım adım strateji - Bu stratejik sıra tabanlı bir oyundur.
  • strateji oyunu - planlama ve stratejik düşünmenin zafere ulaşmanın anahtarı olduğu bir oyun türüdür.
  • Sıra tabanlı oyun - ana özelliği oyuncuların sırayla oynaması olan bir oyun türüdür..
Sıra tabanlı oyunlar şunları içerir:
  • Sıra tabanlı stratejiler
  • Kart oyunları
  • Masa oyunları (satranç, go, tekel vb.)
Sıra tabanlı oyunların, gerçek zamanlı oyunlara kıyasla etkileşim protokolünün karmaşıklığına daha az kısıtlama getirdiğini unutmayın. Yani, belirli bir olaya tepki süresi önemli bir rol oynamaz... Oyuncunun karar vermek için genellikle 10 saniye veya daha fazla zamanı vardır. Ping devasa olsa bile, örneğin 3 saniye, o zaman oyuncunun düşünmek için hala tam 7 saniyesi var. Ayrıca ping atlayabilir ve zıplayabilir ve hiç umursamıyoruz (gerçek zamanlı oyunlarda bu durum neredeyse tüm protokolleri öldürür).

Genellikle (sıra tabanlı oyunların %95'inde) herhangi bir zamanda tam olarak bir oyuncu karar verir. Sonuç olarak, yeterince yanıt vermemiz gereken istekler kümesi daralmıştır.

Bu nedenle, bir protokol oluştururken, öncelikle uygulanmasının ve desteklenmesinin basitliğine odaklanacağız. Bu, daha kısa sürede daha fazla kar elde etmemizi sağlayacaktır.

Yukarıdaki mantık, bazı kart oyunlarının 2 aylık gelişimine dayanmaktadır.

Akıllı mı yoksa aptal müşteri mi?

İlk olarak, müşterimizin ne kadar "akıllı" olabileceğini tanımlayalım. İstemcide uygulama mantığını (oyun kuralları) kopyalamaya değip değmeyeceği konusunda spekülasyon yapıyorum. Elbette, uygulamanın olası hacklenmesini önlemek için sunucunun akıllı olması gerekir. Ancak bir müşteriye iş mantığını öğretmeye değer mi?

Doğrudan oyununuzun durumuyla ilgili tam miktarda verinin ağırlığına bağlıdır. Bu miktarda veri büyükse, sunucuda toplanması uzun zaman alıyorsa ve istemciye iletiliyorsa, sunucuyu boşaltmak için istemcide mantığın bir kısmını uygulamak mantıklı olur. Örneğin Civilization'da bellek kullanım göstergesi her zaman ölçeğin dışındadır. Yalnızca istemcideki kullanıcı arayüzü ile böyle bir şey oluşturabilecek misiniz?

Öte yandan, müşteri ne kadar akıllıysa, oyunu geliştirmek o kadar pahalı olacaktır. Sunucu geliştirme süresinin müşterinin bilgisine bağlı olmadığını unutmayın. İstemci süper-mega akıllı olsa bile, kullanıcı tarayıcı penceresini yeniden yüklemek isterse, sunucunun istemciye aktarmak için oyunla ilgili tüm verileri toplaması ve birleştirmesi gerekir. A la "Kaydedilmiş Bir Oyunu Yükleme". Çıkarım: Akıllı bir istemci bir uygulamayı hızlandırabilir, ancak bir uygulama geliştirmek için her zaman ek kaynaklar gerektirir.

aşağıdakileri öneriyorum Ölçek:

1. Kanalın ses seviyesi izin veriyor mu?

Oyun durumu verilerinin toplam miktarının ortalama ağırlığını tahmin edin. Ardından, saniye başına ortalama sunucu istekleriyle çarpın. Alınan numara, giden veri iletim kanalının hacmini aşarsa, aptal istemci geçersizdir. Bu sayı giden kanalın %20'sini aşarsa, çekecek mi diye düşünmelisiniz?

2. Emek yoğun mu?

Oyun veri toplama algoritmasının karmaşıklığını tahmin edin (saniyenin kesirleri olarak). Tüm veritabanı sorgularını burada düşünün. Ardından, saniye başına ortalama sunucu istekleriyle çarpın. Süre bir saniyeyi aşarsa, aptal müşteri kabul edilemez. Bu sayı 200 ms'yi geçerse çeker mi diye düşünmelisiniz?

Devam:

Herkese merhaba! Şimdi size basit bir RTS-ku (RTS - RTS - Gerçek Zamanlı Strateji, yani gerçek zamanlı bir strateji), hamak 8.1'i nasıl açacağınızı (8.0'da performans garanti edilmez), bir objControl nesnesi oluşturmayı anlatacağım. , yani bu bizim ana nesnemiz olacak, bir oluşturma olayı oluştur ( Oluştur) Olay ekle => Oluştur (Etkinlik ekle => Oluştur) olay oluşturma yalnızca bir kez yapılır - oluştururken sağ dikey menüdeki kontrol sekmesine tıklayın ve Kodu çalıştır'a sağ tıklayın ve kodu yazın (kodu kopyalamamak en iyisidir, ancak kendiniz yazmak hatırlamak çok daha kolaydır):

200? "200px": "" + (this.scrollHeight + 5) + "px"); "> startx = 0; // x noktasındaki noktanın başlangıcı için bir değişken bildirin
başlangıç ​​= 0; // y ile noktanın başlangıcı için bir değişken tanımla
çiz_doğru = yanlış; // Seçim dikdörtgenini çizmeyin


Değişken: Bilgi içeren bir bellek parçası. Onlara başvurabileceğiniz bir adları var. GML'deki değişkenler gerçek bir sayı veya bir dize içerebilir. Örneğin, bir tablo bir değişkendir, ahşap veya cam bir değerdir.
Şimdi bir adım olayı oluşturuyoruz (Adım, Olay Ekle => Adım) ve işlemi tekrar gerçekleştiriyoruz (Kodu çalıştır'a sağ tıklayın):

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
eğer mouse_check_button_pressed (mb_left) // LMB'ye Basılırsa
{
çiz_doğru = doğru; // Bir dikdörtgen çiziyoruz
startx = fare_x; // Başlat x konumu = farenin x konumu
starty = mouse_y; // Başlangıç ​​konumu = fare konumu
tüm seçili = yanlış; // Bu henüz tanımlanmış bir değişken değil, ne yapacağını daha sonra öğreneceğiz
}

mouse_check_button_released ise (mb_left) // LMB Serbest bırakıldıysa
{
çiz_doğru = yanlış; // Dikdörtgen çizmiyoruz
için (i = 0; ben<=instance_number(par);i+=1) //Читайте про цикл for ниже
{
ii = instance_find (par, i); // Henüz yapılmamış bir nesne arıyoruz
if (collision_rectangle (startx, starty, mouse_x, mouse_y, ii, true, false)) // İşte çarpışma dikdörtgenimiz
{
ii.seçilen = doğru;
}
}
}

if ifadesini öğrenene kadar kod büyük ve karmaşıktır:
if kodu şu şekilde çalışır:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
eğer (koşul)
{
eylem
}

Ayrıca bir else operatörü de içerebilir (aksi takdirde), örneğin:

200? "200px": "" + (this.scrollHeight + 5) + "px"); "> if (koşul)
{
eylem
}
Başka
{
eylem 2
}

Ve bir döngü operatörü olduğu için şu şekilde yürütülür:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
için (<переменная> ; <выражение> ;<действие переменной>)
{
<действия>
}


for ifadesi çok güçlüdür, zor durumlarda çok yardımcı olur

Operatör - PL'de yerleşik eylemler, örneğin, en yaygın olanları int, if, else, string, switch, for, case, break, exit vb.

Şimdi bir de beraberlik olayı oluşturup aynı şekilde yazıyoruz:

200? "200px": "" + (this.scrollHeight + 5) + "px"); "> draw_rect = true ise
{
alfa = .8;
draw_rectangle_color (startx, starty, mouse_x, mouse_y, c_green, c_green, c_green, c_green, true);
}

Burada her şey kolay, işte sadece Rusça'da aynı şey:
bir dikdörtgen çizmemiz gerekiyorsa, o zaman saydamlığı seçip bir dikdörtgen çizeriz
işte argümanlar

200? "200px": "" + (this.scrollHeight + 5) + "px"); "> draw_rectangle_color (x1, y1, x2, y2, renk 1, renk 2, renk 3, renk 4, anahat)


anahat - yalnızca yüzün (doğru) veya doldurulmuş dikdörtgenin (yanlış) çizilip çizilmeyeceği
Yeni bir kelime bulduk - bir sabit, bu bir kelime ile değiştirilen sayısal bir ifade veya kod, hamakta yerleşik sabitler var:

200? "200px": "" + (this.scrollHeight + 5) + "px"); "> true - 1
yanlış - 0
pi - 3.1415 ...


Pekala, anladık, şimdi yeni bir nesne oluşturmamız gerekiyor - çocuklara bağlanacak bir ana nesne. Buna par diyelim (adını değiştirmek için kontrol nesnesinin step olayındaki kodu değiştirmeniz gerekiyor), oluşturma olayına şunu yazın:

200? "200px": "" + (this.scrollHeight + 5) + "px"); "> seçilmiş = false; // İşte değişkenimiz, nesne seçili mi?

Hepsi bu. Şimdi, elbette, taşınabilecek bir nesneye ihtiyacımız var, buna objTest diyoruz ve oluşturma olayına kodu yazıyoruz:

200? "200px": "" + (this.scrollHeight + 5) + "px"); "> gox = x; // x'te nereye gidilir ...
goy = y; // y tarafından
seçili = yanlış; // biz seçilmedik =)
object_set_parent (self, par) // Ebeveyn Seçimi İşte

Yeni işlem:

200? "200px": "" + (this.scrollHeight + 5) + "px"); "> object_set_parent (ind, obj)

ind adlı bir nesnenin ebeveynini ayarlar.
Ve yeni operatör: self, eylemin kendisine gideceği anlamına gelir
Korkmayın, step olayına hala biraz kaldı:

200? "200px": "" + (this.scrollHeight + 5) + "px"); "> if Distance_to_point (gox, goy)> 20
{
mp_potential_step (gox, goy, 6, katı);
}
if (seçili = true) && mouse_check_button_pressed (mb_right)
{
gox = fare_x;
goy = fare_y;

tema_parkı:
İhtiyacımız var:
bina sprite
hareketli menü
gibi farklı düğmelerin sprite'ları:
yazıtlı srite (inşaat, inşaat, inşa vb.)
uyanmak için uyanan pencere
bina çizimi,
1) gerisini kendimiz ekleyeceğiz
2) Söz sahte, kendim yarattım, tk. kaynağımız için taklit etmemiz gerekiyor)
II Başlayalım:
1) 1. maddede yazılan her şeyi yaratırız, 1) hariç
Para adında global bir değişken oluşturalım, herhangi bir başlangıç ​​para miktarını belirleyelim.
Ayrıca bir fare ve klavye nesnesi yapalım.
Bir metin oluşturun, bilgi olarak adlandırın, her zaman bir olay oluşturun ve içinde bir eylem oluşturun:
eylem seçiminde bilgi seçin, metindeki metni ayarlayın, şunu yazın:
"para:" & (küresel ("para".
( ayarlar, seçenekler) görüntüleme öğesinde şunu yazın:


içine bir sprite ekleyin ve ön terbiye malzemelerinde bulunan menünün görüntüsünü alın (I. nokta) ve menümüzü müdahale etmeyeceği, ancak ekranda görüneceği tenha bir yere yerleştirin
ayrıca ön terbiye malzemelerinden (I noktası) BUILD (veya bunun gibi bir şey) yazısıyla bir düğme yerleştireceğiz.
menüye koy
şimdi Etkinlik Sayfası Düzenleyicisine gidin
bir etkinlik oluşturuyoruz (# blah-blah-blah # size mesajım (açıklama) ama blah-blah-blah yerine benim yorumum olacak; >> - action; windows ile ll-bölüm, için örnek:

fare ve klavye ll nesne üzerinde ll tıklandı ll nesneye sol tıklandı OLUŞTUR yazısıyla menünüzün # düğmesi (veya bunun gibi bir şey) ## gerisi daha sonra (3. paragrafa bakınız) #
3)şimdi en zor kısım(Bu kadar zor olmasın diye ikiye böldüm)
"uyanan bir pencere" ön terbiye malzemelerinden bir hareketli grafik yaratıyoruz
sonra p1 adında boş bir hareketli grafik yaratırız, pencereyi ekrandan uzaklaştırırız ve p1'i, inşa düğmesine bastığınızda (veya bunun gibi bir şey) pencerenizin görünmesi gereken yere koyarız.
harika! Şimdi etkinlik sayfası düzenleyicisine gidin
Bitmemiş olayı sonuna kadar yazalım:
Metin ll set metin ll bla-bla-bla)
fare ve klavye ll nesnede tıklandı ll nesneye sol tıklandı # YAPI etiketli menü düğmeniz (veya bunun gibi bir şey) # >>
4)En zor kısmın ikinci kısmı:
binanın görüntüsünün (ön bitirme malzemeleri) çizileceği bir hareketli grafik oluşturun, buna h1 diyeceğiz
boş bir hareketli grafik oluşturun, onu p2 olarak adlandırın, şimdi pencerenin açılması gereken yere yerleştirin,
bir hareketli grafik oluşturacağız - ayrıca bir pencere (ön bitirme malzemeleri), pencerede binanın adını, maliyetini ve açıklamasını (istenirse) güzelce yazacağız i1 diyeceğiz
p3 adında başka bir boş hareketli grafik oluşturun, onu p2'nin yanına yerleştirin, yalnızca sol üst köşeyle p2'ye dokunacak şekilde
şimdi birkaç etkinlik oluşturacağız, ancak önce geçmiş etkinliği yeni bir eylemle gerçekleştirmeden önce:
fare ve klavye ll nesne üzerinde tıklandı ll nesneye sol tıklandı # BUILD etiketli menü düğmeniz (veya bunun gibi bir şey) # >> sistem nesneye göre nesne oluştur ll # pencereniz # # menü adı altında katman numarası # #X ; Y-#'yi p1 nesnesine çevirmeyin
>> sistem nesne ll'ye göre nesne oluşturacak # ikinci pencereniz # # ad menüsü altındaki katman numaranız # #X; Y-# nesneyi p2 ile değiştirmeyin
Ayrıca ona bir etkinlik yapmamız gerekiyor:
olayı kopyala ve ters çevir
yeni etkinlik
fare ve klavye ll nesnenin üzerinde ll h1 >> sistem ll nesneye göre nesne oluştur i1 # ad menüsü altındaki katman numarası # #X; Y-nesne p3'e # değiştirme
Bir bina ile bir sprite yapalım (ön bitirme malzemeleri kullanın) hadi buna ev diyelim
Menüde seçildiğinde binalarımızın görüneceği bir pencere oluşturalım, bunlara rlo diyelim
gelişmeler:
fare ve klavye ll tıklandığında ll h1'e sol tıklandığında >> sistem nesneye göre nesne oluştur ll ev # isim menüsü altında katman numarası # #X; Y-değiştirme # nesne rlo
>> sistem ll değerinden # inşaat sırasında alınması gereken para miktarını çıkarır #
şimdi olay inşa edilemez
Size eski yasaklama yöntemimi anlatacağım (yazmayı bitirdiğimde tema parkı dünya oyununu hatırladığımda beni bunaltan başka bir yolu keşfedeceğim)
gelişmeler:
ev ll başka bir nesneyle çarpıştığında ll'den eve
>> ev yıkılacak
>> sistem ll değerinden çıkarma - # inşaat sırasında alınan para miktarının iki katı ## koymanız gereken not - miktar #
temelde her şey.
III söylemek istediklerim:

Oyunumun çökmesine çok üzüldüm.Bu bir stratejiydi ve bu yazı şemasına göre hazırlanmıştı.Çok eleştirmemenizi rica ediyorum,uzun zamandır yazdım,konuşma hataları bulursanız yazın, düzelteceğim
ve ayrıca burada parçalanacak kaynak kodu var, smltrite, prensipte her şey burada yazılanla aynı, sadece oyunun bir demo versiyonuydu. Asıl mesele hiçbir şeyi değiştirmek değil, aksi halde buggy!
kullan, dene, kontrol et, ne istersen yap, her şeyi tam olarak

KaMiKaZa:
Tüm "sistem" ifadeleri "Kod" etiketine eklenmelidir.
O zaman daha iyi olacağını düşünüyorum.
Ayrıca, bana öyle geliyor ki ekran görüntüleri burada zarar görmez. Ayrıca yeni başlayanlar için kaynak.

tema_parkı:
Olayların ekran görüntülerini nasıl yapacağımı bilmiyorum.

peki gerekli değil.

iamnp:
theme_park, klavyede özel bir düğme var - PrintScreen

tema_parkı:
Sadece bazı insanların bunu farklı şekilde yaptığını biliyorum.Ayrıca her birinin kendi spriteı var
ve eğer tüm bu spriteları koyarsam, çok az insan anlayacaktır.
peki, belki birisi artı olur? Boşuna kıvranmadım mı?

burlachenko:
Birinin böyle bir dersle ilgilenmesi için buna göre resmileştirilmesi gerekir, ancak burada "her nasılsa".
Ve yine de, bir arzu varsa, biraz, zaman olduğunda "daha güzel" lütfen.

tema_parkı:
Tamam, okuldan iyi olacağım.
not. eklenen kaynak

Serega Lebedev:

iamnp ve bu ekran görüntüleri nereye gidiyor?

KaMiKaZa:

Panoya.
herhangi birine git Metin düzeltici ve "Yapıştır" işlemini yürütün veya Ctrl + V tuşlarına basın.