Adım adım bir stratejinin geliştirilmesi. Strateji nasıl yapılır? İşe hazırlanma

Herkese selam! Şimdi size basit bir RTS'nin (RTS - Gerçek Zamanlı Strateji, yani gerçek zamanlı bir strateji) bir hamak 8.1'i (8.0'da çalışabilirlik garanti edilmez) nasıl bir objControl nesnesi oluşturacağını anlatacağım. ana nesnemiz, bir oluşturma etkinliği oluşturun ( Oluştur) Etkinlik ekle => Oluşturma (Etkinlik ekle => Oluştur) oluşturma etkinliği yalnızca bir kez yapılır - oluştururken sağ dikey menüdeki kontrol sekmesine tıklayın ve Yürüt'e sağ tıklayın kodunu çalıştırın (Kodu yürütün) ve kodu yazın (kodu kopyalamamak en iyisidir ve kodu kendiniz yazmak hatırlamayı çok daha kolaylaştırır):

200?"200px":""+(this.scrollHeight+5)+"px");">startx=0; //x'in başlangıç ​​noktası için bir değişken tanımlayın
başlangıç=0; //Y ile noktanın başlangıcı için bir değişken tanımlayın
Draw_rect=yanlış; //Seçim dikdörtgeni çizme


Değişken: Bilgi içeren hafıza parçası. Onlarla iletişim kurabileceğiniz kendi isimleri var. GML'deki değişkenler gerçek bir sayı veya bir dize içerebilir. Örneğin masa bir değişkendir, ahşap ya da cam ise bir değerdir.
Şimdi bir adım olayı oluşturuyoruz (Adım, Olay Ekle => Adım) ve işlemi tekrar gerçekleştiriyoruz (Kodu Yürüt'e sağ tıklayın):

200?"200px":""+(this.scrollHeight+5)+"px");">
if mouse_check_button_pressed(mb_left) //LMB'ye basılırsa
{
Draw_rect=true; //Bir dikdörtgen çiziyoruz
startx=fare_x; //Başlangıç ​​x konumu = fare x konumu
starty=mouse_y; //Başlangıç ​​konumu = fare konumu
tümü seçiliyken=yanlış; //Bu henüz bildirilmiş bir değişken değil, ne yapacağını daha sonra öğreneceğiz
}

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

If koşullu ifadesini öğrenirken kod büyük ve karmaşıktır:
if içeren kod şu şekilde yürütülür:

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

Ayrıca bir else ifadesi de içerebilir (aksi halde), örneğin:

200?"200px":""+(this.scrollHeight+5)+"px");">if (condition)
{
aksiyon
}
başka
{
eylem 2
}

For bir döngü operatörüdür ve şu şekilde yürütülür:

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


for ifadesi çok güçlü bir şeydir, zor durumlarda çok yardımcı olur

Operatör - bir dilde yerleşik eylemler; örneğin en yaygın olanları int, if, else, string, switch, for, case, break, çıkış vb.'dir.

Şimdi ayrıca bir çizim olayı (çizim) oluşturup aynı şekilde yazıyoruz:

200?"200px":""+(this.scrollHeight+5)+"px");">if Draw_rect=true
{
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 aynı şey sadece Rusça'da:
bir dikdörtgen çizmemiz gerekiyorsa şeffaflığı seçip bir dikdörtgen çizeriz
işte argümanlar

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


anahat - yalnızca kenarın mı (doğru) yoksa içi dolu dikdörtgenin mi (yanlış) çizileceği
Yeni bir kelime bulduk - sabit, bu bir kelimeyle değiştirilen sayısal bir ifade veya koddur, hamakta yerleşik sabitler bulunur:

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


Bunu çözdük, şimdi yeni bir nesne - çocuklarına bağlanacak bir ana nesne - yaratmamız gerekiyor. Buna par diyelim (adı değiştirmek için kontrol nesnesi adım olayındaki kodu değiştirmeniz gerekir), created olayına şunu yazın:

200?"200px":""+(this.scrollHeight+5)+"px");">selected=false; //İşte değişkenimiz, nesne seçili olsun veya olmasın

Hepsi bu. Şimdi elbette hareket edebilen bir nesneye ihtiyacımız var, buna objTest adını veriyoruz ve create olayına kodu yazıyoruz:

200?"200px":""+(this.scrollHeight+5)+"px");">gox=x; //Nereye gitmeli...
goy=y; //tarafından
seçilmiş=yanlış; //Seçilmedik =)
object_set_parent(self,par) //İşte ebeveyn seçimi

Yeni eylem:

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

Ana nesneyi ind adlı nesneye ayarlar.
Ve yeni bir operatör: self, eylemin kendisine gideceği anlamına gelir
Korkmayın, step olayına az da olsa kaldı:

200?"200px":""+(this.scrollHeight+5)+"px");">if distance_to_point(gox,goy) > 20
{
mp_potential_step(gox,goy,6,solid);
}
if(selected=true) && mouse_check_button_pressed(mb_right)
{
gox=fare_x;
goy=fare_y;

Günümüzde pek çok ticaret stratejisini kolaylıkla bulabilirsiniz, tek sorun bunların çoğunun ya işe yaramaması ya da yeterince etkili olmamasıdır. Böyle bir durumda sıfırdan 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ıyor. Yani, tüm aşamaları sırayla geçerek evrensel bir rehber gibi bir şey yaratabilirsiniz ve sonunda tamamen işe yarar bir sistem elde edeceğiz.

Her ne kadar sıfırdan bir strateji oluşturma seçeneğini, bir fikirle başlayıp, bir filtrenin tanıtılması ve aracın nihai geliştirilmesiyle bitirme seçeneğini değerlendirecek olsak da, bu, tüm hazır sistemlerin açıkça etkisiz olduğu gerekçesiyle derhal atılması gerektiği anlamına gelmez. . Bir dizi TS temel olarak kullanılabilir ve yanlış sinyalleri ayıklamak için sadece birkaç filtre eklenebilir.

Strateji oluşturmanın ana aşamaları

Rastgele 5-7 gösterge alıp onlardan çalışan bir araç oluşturmaya çalışırsanız, o zaman yararlı bir şeyin ortaya çıkması pek olası değildir. Öncelikle stratejinin ana fikrini düşünmeniz ve ancak bundan sonra araçları seçmeye geçmeniz gerekir. Aşağıdaki eylem sırası önerilebilir:

  • sistem sıfırdan oluşturulmuşsa ilk adım fikir üzerinde çalışmaktır. Bu aşamada, yalnızca ticaret tarzınızın ne olacağına, örneğin işlemlerin trend boyunca mı yoksa ona karşı mı gerçekleştirileceğine veya belki de stratejinin yalnızca çıkış için planlanıp planlanmadığına karar vermeniz yeterlidir. Henüz ayrıntıları düşünmüyoruz;
  • Uygun ticaret stilini seçtikten sonra ayrıntıları çözmeye başlayabilirsiniz. Enstrümanları seçmeden önce, çalışan döviz çiftlerini ve zaman dilimlerini, işlem süresini vb. açıkça belirlemeniz gerekir;

Önemli! Bir zaman dilimi seçerken, özellikle yatırımcının küçük zaman aralıklarında spekülasyon yapma deneyimi yoksa, çok küçük bir çerçeveye gidilmesi önerilmez. 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 yatırımcıya acımasız bir şaka yapabilir çünkü elinde düzinelerce gösterge, mum, dalga, teknik ve temel analiz kullanma yeteneği vardır. Tüm bu çeşitlilik arasından, amaçladığınız ticaret tarzına en uygun olan birkaç enstrümanı seçmeniz gerekir;
  • Herhangi bir stratejinin ana kurallarından biri, alınan sinyalin birkaç filtre tarafından onaylanması gerektiğidir, ancak bunların sayısının sınırlandırılması tavsiye edilir. Örneğin gösterge stratejileri için gösterge sayısının 3-4'ü geçmesi istenmez, aksi takdirde sinyallerde karışıklık olur ve teknik analiz kullanarak çalışmayı planlıyorsanız göstergeler destekleyici rol oynayacaktır;
  • konum desteğine ilişkin kurallar geliştirildiğinde, sonuç herhangi bir senaryo için bir eylem algoritması olmalıdır;
  • Son aşama, aracı önce bir geçmiş hesabında, ardından bir demo hesabında veya daha iyisi gerçek bir sent hesabında çalıştırmaktır. Ana amaç, stratejinin uygulanabilirliğini gerçek koşullarda test etmektir ve gerçek bir hesap (bir kuruş bile), coşkudan kayıpların acısına kadar tüm duyguları hissetmenize olanak tanır.

Ayrıca aracın karmaşıklığına takılıp kalmamanızı da tavsiye edebilirsiniz. Uygulama, aşırı karmaşıklığın hiçbir şekilde etkililiğin bir göstergesi olmadığını göstermektedir. Sistem ne kadar basit olursa ticaret o kadar kolay olur.

Araçta neler bulunmalıdır?

Strateji oluşturmak biraz inşaat setine benzer; sadece doğru parçaları seçmeniz gerekir. Bir araç oluştururken şunları kullanabilirsiniz ve kullanmalısınız:

  • göstergeler. Üstelik ne çokluğu ne de aşırı karmaşıklığı kovalamamalısınız, tamamen mekanik araçlarda bile 3-5 adet yeterlidir;
  • grafik desenleri - iyi bilinen bayraklar, flamalar, üçgenler, baş ve omuzlar, çift dipler ve üst kısımlar hala iyi çalışıyor;
  • grafik yapılar;
  • Fibo seviyeleri;
  • temel analizin 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 istatistikler yayınlanmadan önce işlemleri başabaş noktasına taşıyın, hatta kârı tamamen kapatın.

Faydaları şüpheli olan bir takım teknikler de vardır:

  • Martingale başlangıçta kârsız bir taktiktir, başarının tek şansı, kaybetmeden önce yatırdığınız tutarı telafi edip biraz kazanabilmenizdir;

  • Kesinlikle gerekmedikçe kilitlemenin kullanılması da istenmez; bu durumda kaleden ayrılmak oldukça zordur;
  • Ayrıca dışarıdan gelen sinyalleri kullanmamak daha iyidir. Dışarıdan gelen sinyaller, örneğin satıcı/alıcı sayısının karşılaştırılması, tüccarların çoğunluğunun ruh halinin çeşitli endeksleri vb. anlamına gelir. Ancak aynı zamanda dinleyebileceğiniz bir dizi kaynak da vardır; örneğin Autochartist grafik desenlere dayalı olarak iyi sinyaller verir;
  • Ayrıca dalga analizi unsurlarını kullanmamak daha iyidir (en azından yeni başlayanlar için). Burada istisnalar olmasına rağmen, örneğin Wolfe Waves'de işlem yapmak tam olarak dalga analizine dayanır, ancak özellikle karmaşık değildir.

Basit bir gösterge stratejisinin geliştirilmesi

Stratejinin ana fikrinin yalnızca trend yönünde ticaret yapmak olduğunu varsayalım. Üstelik oldukça riskli olan bir trendin ortaya çıktığı anda değil, küçük bir düzeltme tamamlandıktan sonra piyasaya gireceksiniz.

Strateji hemen hemen her döviz çiftinde çalışmalıdır; bu gereklidir çünkü geniş zaman dilimi nedeniyle sinyaller çok sık meydana gelmez. Yani aynı anda 5-7 döviz çifti kullanılarak durum değerlendirilecek. Zaman aralığına gelince, D1 uygundur; Forex'in ilk aşamada yalnızca ana işe bir ek olduğu gerçeğinden yola çıkıyoruz, bu nedenle günlük mumlarla işlem yapacağız.

Artık gireceğiniz anın tam olarak nasıl belirleneceğine karar vermeniz gerekiyor. Bir trendi tanımlamak için birçok seçenek vardır:

  • görsel olarak - ancak gözle yapılan bir değerlendirme, net ticaret kuralları geliştirmenize izin vermez;
  • bir veya daha fazla hareketli ortalamanın kullanılması;
  • ADX göstergesinin değerine göre, 30'un üzerindeyse güçlü bir trend var demektir, 20'nin altındaysa piyasa sakindir;
  • grafik yapıların kullanılması;
  • Bollinger Bantları, kanalın üst ve alt sınırları arasındaki mesafeye göre bir trendin gücünü değerlendirmenize olanak tanır.

Genel olarak birçok seçenek var ancak stratejinin mümkün olduğunca basit olması gerektiğinden hareketli ortalamalara odaklanacağız. Daha doğrusu, bir MA'da trendin yönünü fiyatın ona göre konumuna göre değerlendireceğiz. Tüm bir süre boyunca (hafta, ay, çeyrek vb.) fiyatın ortalamasını alan dönemlerle başlayabilirsiniz; örneğin 20, geçen aydaki fiyatın ortalamasını alacaktır. En zor şey uygun MA dönemini seçmektir ancak burada deneme yanılma yoluyla ilerlemeniz gerekecektir.

Ticaretin ana fikri şu olacaktır: Trend hareketinin ortaya çıkmasını bekleriz, ardından bir gün içinde bir düzeltme gelir ve bunun bitiminden sonra bir anlaşma yapılır. Bütün bunlar açık kurallar biçiminde sunulursa, eylemlerin algoritması şöyle görünecektir (satın alma örneğini kullanarak):

  • İlk önce MA'ya göre fiyat pozisyonunu kontrol ediyoruz, fiyat çizginin üzerinde olmalı;
  • Daha sonra bir trend hareketi bulmamız gerekiyor, büyük gövdeli ve küçük gölgeli bir muma ihtiyacımız var (gölgenin değerinin mum gövdesinin boyutunun %10-15'ini geçmemesi tavsiye edilir);
  • bunu küçük bir günlük aralığa (Yüksekten Kapanışa olan mesafe) sahip bir mum takip etmelidir. Kapanış fiyatı önceki günün %50 seviyesine ulaşmamalıdır; bu günde fiyat düzeltmesi gerçekleşir.

Bu durumda düzeltme 2 senaryoya göre yapılabilir:

  • Altında uzun gölgeli bir mum oluştuğunda günün kapanışında hemen işlem açabilirsiniz. Mumun bu şekli düzeltmenin zaten tamamlandığını gösterir;
  • Olası bir seçenek, düzeltme mumunun minimumda kapanmasıdır; Geri dönüş henüz tamamlanmadı, bu durumda bir sonraki mum kapanana kadar beklemeniz gerekir; eğer beyazsa uzun pozisyon açabilirsiniz.

Pozisyonun ve koruma emirlerinin korunmasına gelince, zararı durdurmanın en azından geniş gövdeli mumun ortasının ötesine yerleştirilmesi gerekir. Hedef seviyeye ulaşmak için aynı mumun değerini satın alma seviyesinden ayırmak yeterlidir; takip eden stop kullanabilirsiniz.

Stratejinin kuralları oluşturuldu, geriye kalan tek şey onu eylem halinde test etmektir. Uygulama, bu kadar basit bir algoritmanın bile karlı işlemlerin yarısından fazlasını ürettiğini göstermektedir (ve işlemi erken sıfıra çevirirseniz, kayıp olasılığı azalır).

Trendin başlangıcında giriş

Yukarıda önerilen TS, trend hareketinin bir kısmını kaçırıyor ancak piyasa analizi için fazla zaman gerektirmiyor. Günün fiyatının davranışını izlemek mümkünse, o zaman trendi oluşumunun en başında sürdürmeyi deneyebilirsiniz. Yani stratejinin ana fikri, fiyat yatay kanaldan çıkmaya başladıktan sonra pazara girmektir.

Ve burada trendin en başında güvenilir bir sinyali zamanında almak çok önemlidir. Hareketli ortalamalar yine imdada yetişebilir, ancak bunlar önceki stratejiden biraz farklı şekilde kullanılacaktır. Farklı dönemlerdeki birkaç MA'yı alabilir ve bir trendin oluşumunu birbirlerine göre konumlarına göre değerlendirebilirsiniz.

Bu devrim niteliğinde bir yaklaşım değil; Bill Williams ünlü Timsah'ında da benzer bir şey kullanmıştı. Yani bu gösterge TS'nin temeli olarak bile alınabilir.

H1'e standart ayarlarla Alligator'ı eklersek, çok fazla yanlış sinyal verdiğini görebiliriz; bizim görevimiz bunları ayıklamaktır. Bunu yapmak için pazara bekleyen bir emirle gireceğiz ve yerleştirme seviyesi Fraktallar kullanılarak belirlenecek.

Sonuç olarak iş akışı şu şekilde görünecektir (satın alma örneğini kullanarak):

  • Grafikte düz bir alan arıyoruz (tüm Timsah çizgileri kaotik bir şekilde birbiriyle iç içe geçmiş durumda);
  • Daha sonra, fraktal bir muma ihtiyacınız var (ve alt gölgeye bile dokunmadan çizgilerin üzerine yerleştirilmelidir);
  • Maksimum seviyenin hemen üzerine bir satın alma durdurma emri verilir ve konsolidasyon bölgesinin alt sınırının ötesine koruyucu bir emir verilir;
  • TP ya sabittir (50-70 p) ya da takip eden bir durdurma kullanın. Genel olarak bir trend hareketinin gücünü tahmin etmek oldukça zordur, dolayısıyla sabit bir TP yerine takip eden stop kullanmak veya aynı teknik analizi kullanarak hedef seviyeyi belirlemek daha iyidir.

Bu örnek, sıfırdan bir strateji geliştirmek değil, daha ziyade halihazırda bilinen bir stratejinin modern pazara hafif bir uyarlamasıdır.

Basit birleştirilmiş sistem örneği

Fikir hala aynı - düzeltmenin sonunda giriş, ancak bu sorunu farklı bir şekilde çözeceğiz. Amaç aynı kalıyor - düzeltmenin tamamlanma anını belirlemek ve trend yönüne girmek, ancak daha önce hareketli ortalamayı kullanmış olsaydık, şimdi geri dönüşün tamamlandığını belirlemek için Fibo seviyelerini ve osilatörü kullanacağız.

Belirgin bir trend hareketi ilgimizi çekecek; görsel olarak da belirlenebilir. Bundan sonra, Fibo seviyelerini ona kadar uzatmanız yeterlidir; bu, düzeltmeyi tamamlamak için potansiyel seviyeleri belirlemek için gereklidir. En önemli düzeltme seviyesi %38,2'dir; %50 ve %61,8'den gelen ribauntlarda işlem yapılmasına izin verilir.

Ancak fiyatın Fibo seviyesine dokunması yeterli değil; teyit gerekiyor. Stokastik bu görevin üstesinden oldukça iyi gelebilir (aynı amaç için RSI'yi kullanmayı deneyebilirsiniz). Örneğin bir alış işlemi için fiyatın düzeltme seviyesine yakın olması ve Stokastik'in o andaki aşırı satış bölgesinde olması gerekir.

Fiyat seviyeye dokunduktan sonra Stokastik'in aşırı satış bölgesinden çıkıp alım yapmasını bekleriz. Durdurma noktası bir sonraki düzeltme seviyesinin ötesine yerleştirilebilir ve TP, en azından geri çekilmenin başlamasından önceki son en yüksek seviyeye yerleştirilebilir.

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

Teknik analize dayalı stratejiler

Teknik analiz saf haliyle kullanılırsa görev biraz daha basit hale gelir; artık sıfırdan bir araç geliştirmeye gerek yoktur. Etkinliği yıllar boyunca test edilmiş çok sayıda teknik ve araç vardır ve tüccar yalnızca uygun olanları seçip inşaatlarda kullanabilir.
Prensip olarak başarılı bir ticaret için bu yeterlidir:

  • trend çizgileri - bunları farklı zaman dilimlerinde oluştururuz, en yüksek olandan başlayıp yavaş yavaş işe yarayan zaman dilimine ineriz;
  • Fibo seviyeleri, tarihteki önemli fiyat hareketlerine kadar genişletilmelidir. %38,2, 50 ve 61,8'lik düzeltme seviyeleri kilit öneme sahip olacaktır; uygulama, düzeltmenin çoğunlukla bu işaretlerde bittiğini göstermektedir;
  • MT4 ayrıca Andrews dirgenleri, bir dizi Gann aracı, çeşitli kanal türleri vb. gibi bir dizi başka teknik analiz aracını da uygular.

Ancak oldukça doğru bir tahmin için Fibo seviyeleri ve trend çizgileri yeterlidir; seviyelerin ve çizgilerin yoğunlaştığı alanlar genellikle destek/direnç görevi görür. Ticaret hem bir çıkış hem de seviyelerden ve çizgilerden toparlanma için yapılabilir.

Ek filtrelere gelince, sapmaları aramak için mum çubuğu desenleri ve bir tür gösterge (aynı Stokastik veya MACD) ekleyebilirsiniz. Teknik analizin kullanımı hakkında daha fazla bilgi edinebilirsiniz.

Ticaret sistemleri için filtreler

Herhangi bir ticaret aracı, fikir işe yarasa ve ticaret genel olarak karlı olsa bile, çok sayıda sinyal üretir ve bunların bazıları kârsızdır. Sistem kuralları oluşturulduktan sonra karlı/karsız işlem oranını artırmaya yardımcı olacak bir dizi evrensel filtre kullanabilirsiniz.

Hemen hemen her stratejiye uyacak çok sayıda filtre vardır:

  • daha yüksek zaman dilimlerinde durum. Örneğin, strateji H1'de mekanik bir stratejiye göre yürütülüyorsa, o zaman H4 ve D1'de olup bitenlere bakmak yanlış olmaz;
  • Ortalama günlük aralık, yani gün içinde işlem yaparken fiyatın ortalama olarak kat ettiği mesafe; bu, bir dizi sinyalin filtrelenmesine yardımcı olacaktır. Gün içerisinde fiyatın ortalama 100-120 pip hareket ettiğini, eğer günlerden birinde akşama kadar fiyat zaten bir yönde 90-100 pip'i geçmişse ve TS'nin pazara girme sinyali verdiğini varsayalım. aynı yöndeyse bunu görmezden gelmek mantıklıdır, istatistikler trafiğin bu günde devam etme ihtimalinin düşük olduğunu söylüyor;

Önemli! Bu kurala uyulması bazı kârlı işlemlerin kaçırılmasına neden olacak ancak kârlı/zararlı işlemlerin oranı artacaktır.

  • Sinyal oluştuktan sonraki mum sayısı da önemlidir, hatta üzerinde daha detaylı duracağımız 5 mumluk bir filtre bile vardır.

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

Kriter olarak 5 mum alabilirsiniz; eğer bir anlaşma yapıldıktan sonra fiyat 5 mum için karlı bir yönde hareket etmediyse, anlaşmayı manuel olarak kapatmak daha iyidir. Bu, grafiğin yerinde kaldığı ancak fiyatın kârsız tarafa geçmiş olması durumunda bu filtrenin uygulanmadığı bir senaryo anlamına gelir.

Bu durum hemen hemen tüm zaman dilimleri için geçerlidir (m1-m5 hariç). Tabii ki, bir işaretin etrafında gezinen fiyatın doğru yönde hareket etme olasılığı hala var, ancak bizim tercihimiz istikrardır. Birkaç karlı işlemi feda etmek, ancak 3-5 kârsız işlemden kaçınmak daha iyidir.

Özetleme

Ticaret sistemi olmadan çalışmaya başlamak ölüm gibidir, her tüccar bunu hatırlamalıdır. Bu durumda depozitonun kaybedilmesi an meselesidir.

Uygun bir araç seçmek zor değildir; üstelik kamuya açık alanda iyi çalışan sistemler bulabilirsiniz. Ayrıca kendi stratejinizi oluşturma konusunda da endişelenebilirsiniz, özellikle bu programlama dilleri bilgisi gerektirmediğinden, sadece piyasanın nasıl çalıştığı ve hangi göstergelerin hangi amaçlarla kullanıldığı konusunda bir fikre ve en azından temel bilgiye sahip olmanız yeterlidir.

Sürecin kendisi bir inşaat kitinin montajını andırıyor; önce bir sorun belirliyoruz ve ardından onu çözmek için gerekli araçları seçiyoruz. Geçmişi kontrol ettikten sonra demo veya cent hesabında TS testine geçebilirsiniz.

Bu yazıda bilinmeyen bir şeye değinmem pek mümkün değil. Tüm hesaplamalar Ajax'ın ne olduğunu bilen herkes için basit ve anlaşılırdır. Gerçek zamanlı oyunlarda () bir istemciyi bir sunucuyla nasıl birleştireceğim hakkında zaten bir makale yazmıştım. Bu makalede sıra tabanlı oyunlarda geçerli olan aynı sorunları ele alacağım.

Öyleyse ne sıra tabanlı oyun? Vikipedi'de aşağıdaki tanımı bulabilirsiniz sıra tabanlı strateji - Gerçek zamanlı stratejinin aksine, temel özelliği oyuncuların sırayla hamle yapması olan bir bilgisayar oyunu türüdür.. Bu tanımı biraz basitleştireceğim:

  • Adım adım strateji - sıra tabanlı bir strateji oyunudur.
  • Strateji oyunu - Bu, zafere ulaşmanın anahtarının planlama ve stratejik düşünme olduğu bir oyun türüdür..
  • Sıra tabanlı oyun - temel özelliği oyuncuların sırayla hamle yapması 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 belirtmek isterim. Yani, belirli bir olaya tepki süresi önemli bir rol oynamaz. Oyuncuya genellikle karar vermesi için 10 saniye verilir. Ping çok büyük olsa bile, örneğin 3 saniye, oyuncunun düşünmek için hâlâ 7 saniyesi vardır. Ayrıca ping atlayabilir ve atlayabilir, ancak bunu hiç umursamıyoruz (gerçek zamanlı oyunlarda bu durum pratik olarak her protokolü öldürür).

Tipik olarak (sıra tabanlı oyunların %95'inde) herhangi bir zamanda kararı tam olarak tek bir oyuncu verir. Sonuç olarak, yeterince yanıtlamamız gereken taleplerin sayısı daraldı.

Bu nedenle bir protokol oluştururken öncelikle uygulama ve desteğinin kolaylığına odaklanacağız. Bu sayede daha kısa sürede daha fazla kar elde edebiliriz.

Yukarıdaki mantık, belirli bir kart oyununun 2 aylık gelişimine dayanmaktadır.

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

Öncelikle müşterimizin ne kadar “akıllı” olabileceğine karar verelim. İstemcide uygulama mantığını (oyun kuralları) kopyalamaya değip değmeyeceğini tartışıyorum. Elbette, uygulamanın potansiyel olarak hacklenmesini önlemek için sunucunun akıllı olması gerekir. Ancak müşteriye iş mantığını öğretmeye değer mi?

Bu doğrudan oyununuzun durumuyla ilgili tüm veri miktarının ne kadar ağır olduğuna bağlıdır. Bu miktarda veri büyükse, sunucuda toplanması uzun sürüyorsa ve istemciye aktarılıyorsa, sunucuyu rahatlatmak için mantığın bir kısmını istemci üzerinde uygulamak mantıklı olur. Örneğin, Civilization'da kullanılan hafıza göstergesi her zaman çizelgelerin dışındadır. İstemcide yalnızca kullanıcı arayüzünü bırakarak benzer bir şey oluşturabilir misiniz?

Öte yandan müşteri ne kadar akıllıysa oyun geliştirme de o kadar pahalı olacaktır. Sunucu geliştirme süresinin hiçbir şekilde müşterinin bilgisine bağlı olmadığını belirtmek isterim. İ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 gerekecektir. Bir la "Kaydedilmiş bir oyun yükleniyor". Sonuç: Akıllı bir istemci, bir uygulamayı hızlandırabilir ancak uygulamayı geliştirmek için her zaman ek kaynaklara ihtiyaç duyacaktır.

Aşağıdakileri öneririm Ölçek:

1. Kanal ses seviyesi izin veriyor mu?

Oyun durumu verilerinin tamamının ortalama ağırlığını tahmin edin. Daha sonra, sunucuya saniyede yapılan ortalama istek sayısıyla çarpın. Ortaya çıkan sayı giden veri kanalı kapasitesini aşarsa, aptal istemci kabul edilemez. Bu sayı giden kanalın% 20'sini aşarsa işe yarayıp yaramayacağını düşünmelisiniz?

2. Emek yoğun mu?

Oyun veri toplama algoritmasının karmaşıklığını (saniyenin kesirleri cinsinden) tahmin edin. Burada veritabanına yapılan tüm sorguları dikkate alın. Daha sonra, sunucuya saniyede yapılan ortalama istek sayısıyla çarpın. Süre bir saniyeyi aşarsa aptal bir müşteri kabul edilemez. Bu sayı 200 ms'yi aşarsa, bunun devam edip etmeyeceğini düşünmelisiniz?

Devamı:

tema_parkı:
İhtiyacımız olacak:
bina ruhu
hareketli menü
AŞAĞIDAKİ GİBİ ÇEŞİTLİ DÜĞMELERİN SPRİTELERİ:
yazıtlı yazı (inşaat, inşaat, inşaat vb.)
görünen bir pencere
bina çizimi,
1) gerisini kendimiz ekleyeceğiz
2) sahte kelimesi - benim tarafımdan yaratıldı, çünkü kaynağımızla eşleşmesi için sahtesini yapmamız gerekecek)
Haydi başlayalım:
1) 1. madde hariç, I. maddede yazılan her şeyi yaratın)
Para adında global bir değişken oluşturalım, başlangıçtaki herhangi bir para miktarını ayarlayalım
Ayrıca bir fare ve klavye nesnesi oluşturacağız
Bir metin oluşturalım, buna bilgi adını verelim, bir Always olayı oluşturalım ve içinde bir eylem oluşturalım:
eylem seçiminde bilgi seçin metindeki metni ayarla seçeneğini seçin şunu yazın:
"para: " &(küresel("para".
2) bir menü ekleyin, menünün asıl görevi müdahale etmek değil, oyuncunun gezinmesine yardımcı olmaktır (nasıl müdahale edebilir? - menüyü yapmadan önce oyunun ortasına yerleştirirseniz kolaydır); Yazdığımız görüntüleme öğesinde, oranlarında (ayarlar, seçenekler) menü adını vereceğimiz yeni bir katman oluşturacağız:


içine bir sprite ekleyeceğiz ve üretim öncesi materyallerdeki menünün görüntüsünü (I noktası) alıp menümüzü müdahale etmeyeceği ancak ekranda görüneceği tenha bir yere yerleştireceğiz.
Ayrıca ön kaplama malzemelerinden yapılmış bir düğmeyi (nokta I) BUILD (veya buna benzer bir şey) yazısıyla yerleştirelim.
bunu menüye koyalım
Şimdi Etkinlik Sayfası Düzenleyicisine gidin
bir etkinlik oluştur (#blah blah blah# - bu benim sana mesajım (açıklama) sadece falan filan yerine senin için yorumum olacak; >> - eylem; ll - pencerelerin bölünmesi örneğin:

fare&klavye ll tıklanan nesnede ll nesneye sol tıklandığında #BUILD yazan menü düğmeniz (veya buna benzer bir şey)## geri kalanı daha sonra (bkz. madde 3)#
3)şimdi en zor kısım(Çok karmaşık olmaması için bunu iki noktaya ayırdım),
ön kaplama malzemelerinden "görünecek bir pencere" içeren bir hareketli grafik oluşturun
daha sonra p1 adında boş bir hareketli grafik oluşturuyoruz, pencereyi ekranın dışına taşıyoruz ve p1'i oluştur düğmesine bastığınızda pencerenizin görünmesi gereken yere yerleştiriyoruz (veya buna benzer bir şey)
harika! Şimdi etkinlik sayfası düzenleyicisine gidin!
Bitmeyen olayı sonuna kadar yazalım:
Metin ll metni ayarla ll bla-bla-bla)
fare&klavye ll tıklanan nesnede ll nesneye sol tıklandığında #OLUŞTUR etiketli menü düğmeniz (veya buna benzer bir şey)#>>
4)En zor kısmın ikinci kısmı:
Binanın görselinin (ön kaplama malzemeleri) çizileceği bir hareketli grafik oluşturalım, adını h1 koyalım
boş bir hareketli grafik oluşturalım, buna p2 adını verelim, şimdi onu pencerenin açılması gereken yere yerleştirelim,
Bir hareketli grafik, ayrıca bir pencere (ön kaplama malzemeleri) oluşturalım, pencereye binanın adını, maliyetini ve açıklamasını (isteğe bağlı) güzel bir şekilde yazacağız ve buna i1 adını vereceğiz.
p3 adında başka bir boş karakter yaratalım, onu p2'nin yanına yerleştirelim, yalnızca p2'ye sol üst köşeyle dokunacak şekilde
Şimdi birkaç etkinlik oluşturalım, ancak önce önceki etkinliği yeni bir eylem haline getirelim:
fare&klavye ll tıklanan nesne üzerinde ll nesneye sol tıklanır #menünüzün BUILD yazan düğmesi (veya buna benzer bir şey)#>> sistem ll nesneye göre nesne oluşturacaktır ll #pencereniz# #menü adı altındaki katman numarası# # # X ;Y-p1 nesnesine# değiştirmeyin
>>sistem ll nesneye göre nesne oluştur ll #ikinci pencereniz# #menü adı altındaki katman numarası# #X;Y-nesneyi p2 olarak değiştirmeyin
Ayrıca ona bir olayı da geri vermemiz gerekiyor:
olayı kopyalayın ve tersine çevirin
yeni etkinlik
fare&klavye ll üzerinde nesne ll h1>>sistem ll nesneye göre nesne oluştur ll i1 #menü adı altındaki katman numarası# #X;Y-nesne p3'e değiştirilmiyor#
Bir binayla bir hareketli grafik yapalım (üretim öncesi malzemeleri kullanın) ve ona ev adını verelim
Menüde seçildiğinde binalarımızın görüneceği bir pencere oluşturalım, buna rlo adını verelim
olaylar:
fare&klavye ll tıklanan nesnenin üzerine tıklanır h1>>sisteme sol tıklanır nesneye göre nesne oluşturulur ll ev #katman numarası adı altında menü# #X;Y-nesne rlo'ya değiştirilmez#
>> sistem ll değerinden çıkarılacak ll #inşaat sırasında alınması gereken para miktarı#
Artık bir etkinlik inşa etmek imkansızdı
Size eski yasaklama yöntemimi anlatacağım (yazmayı bitirdiğimde, oyun tema parkı dünyasını hatırladığımda moralimi bozan başka bir yöntemi keşfedeceğim)
olaylar:
ev başka bir nesneyle çarpışınca eve döner
>>evi yok edeceğim
>> sistem ll değerinden ll'yi çıkar - #inşaat sırasında alınan para miktarının iki katı##koymanız gereken not - miktar#
temelde her şey.
III söylemek istediğim şey:

Oyunumun çökmesine çok üzüldüm, bu yazı kendi şemasına göre derlendi, çok fazla eleştiri yapmamanızı rica ediyorum, herhangi bir konuşma hatası bulursanız, yaz ve onları düzelteceğim
ve ayrıca izleme keyfiniz için kaynak kodu da burada, bakın, prensipte her şey burada yazılanlarla aynı, sadece bu oyunun bir demo versiyonuydu. Asıl mesele hiçbir şeyi değiştirmemek, aksi takdirde hatalı olacaktır. !
Kullan, dene, kontrol et, istediğini yap, benim için sorun değil

KaMiKaZa:
“Kod” etiketinde tüm “sistem” ifadeleri bulunmalıdır.
O zaman daha iyi olacağını düşünüyorum.
Ayrıca bana öyle geliyor ki ekran görüntüleri burada zarar görmez. Ve ayrıca yeni başlayanlar için kaynak kodu.

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

Peki, bu gerekli değil.

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

tema_parkı:
Bazı insanların bunu farklı şekilde yaptığını biliyorum. Üstelik herkesin kendi ruhu var.
ve eğer tüm bu spriteları ben kurarsam çok az kişi anlayacaktır.
Belki birisi bir artı verir? Mücadele etmeme şaşmamalı mı?

Burlaçenko:
Böyle bir dersin herhangi birinin ilgisini çekmesi için buna göre formatlanması gerekiyor ama burada "her neyse".
Ve yine de, eğer isterseniz, zamanınız olduğunda, azar azar, lütfen onu “güzelleştirin”.

tema_parkı:
Tamam, hazırlanmak için okuldan döneceğim.
PS. kaynak eklendi

Serega Lebedev:

iamnp, bu ekran görüntüleri daha sonra nereye gidecek?

KaMiKaZa:

Panoya.
Herhangi bir metin düzenleyicisine gidin ve “Yapıştır” işlemini gerçekleştirin veya Ctrl+V tuşlarına basın.

Şirketinizin ülkemizde danışmanlık hizmetleri pazarının en güçlü şirketlerinden biri olduğunu düşünüyorum. Çok çeşitli yönetim sorunlarına değinmeniz ve bunları yeterli kalite ve derinlikte ele almanız hoşuma gidiyor. Profesyonellerin deneyimlerini tanımak ve onlardan bir şeyler öğrenmek her zaman ilginç olduğundan, şirketinizin yayınlarında pek çok yararlı bilgi buluyorum.

Borisyuk Yuri Aleksandrovich, yönetim danışmanı, Teknik Bilimler Doktoru

Öğrettiğiniz ustalık sınıfları dizisini gerçekten seviyorum.Şahsen, daha önce bir fabrikanın başkanı olduğumdan, yönetime yaklaşımlarımı değiştirmeye başladım. Sizden alınan bilgiler sayesinde. Fabrikada yaptıklarıma ve gözlemlerime bir şekilde cevap verdi. O zamandan beri Rusya'nın endüstriyel kapasitesinin ne kadar etkisiz olduğunu, potansiyelinin ne kadar büyük olduğunu ve bunun nasıl hayata geçirilebileceğini düşünmeye başladım. Farklı işletmelerin sorunlarıyla kişisel olarak tanıştıktan sonra (bazen arkadaşlarım beni uzman olarak davet ediyor), ne kadar çok şeyin yapılabileceğini, hem etkinliğin hem de verimliliğ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 materyal bilgisi ve elbette ele alınan konularda çok fazla pratik deneyim. Beni çeken şey şu Alexander'ın profesyonelliği ve konuya ilişkin yüksek düzeydeki mesleki bilgisi, zaten tanıdık olan şeylere farklı bakmamı sağlıyor. Benim açımdan bu Bildiğiniz şeylere yeni bir gözle bakmak çok önemli ve gerekli çünkü... Cerrahi çalışma sırasında, çoğu zaman 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.

Fok
Konunun devamı:
Çeşitli

Windows işletim sistemine dahil olan NVIDIA video kartlarının sürücüleri genellikle OpenGL'yi desteklemez. Uygulamalar yazılım oluşturmayı kullanacak...