"Bir ticaret robotu için İş Tanımı Nasıl Yazılır" başlıklı bir makale yazıyoruz. - sayfa 4

 
 

Yazılım geliştirme için TOR için standartlar ve şablonlar

https://habrahabr.ru/post/328822/

Стандарты и шаблоны для ТЗ на разработку ПО
Стандарты и шаблоны для ТЗ на разработку ПО
  • 2017.05.17
  • habrahabr.ru
Недавно ко мне обратились, чтобы я посоветовал стандарты для написания технического задания (ТЗ) на разработку автоматизированных систем (АС) и программного обеспечения (ПО). Вот думаю, сейчас зайду в Яндекс, найду подходящую статейку и отправлю её. Но не тут-то было! Одной статьи, где перечисляются стандарты для ТЗ, включая шаблоны и примеры...
 
Rashid Umarov :

Bir danışman için TOR hakkındaki makalenin kısa bir taslağı.

Tanıtım. Makale, konuyu son derece düşük düzeyde anlama düzeyi dikkate alınarak, yalnızca "yoğun amatör" müşterisi için yazılmıştır. Çoğu zaman, müşteriler bir danışmanın, göstergenin, terminalin neler yapabileceğinin farkında değildir. Bu, müşterinin seviyesine "inmenin" gerekli olduğu anlamına gelmez. Her şeyi insani bir şekilde açıklamanız yeterlidir (karmaşık bir programlama dili olmadan).

1. Terminoloji. Minimum yeterli terminolojik aparat. Kelimenin tam anlamıyla (MT4 için ise) siparişlerin açılıp kapatıldığı ve gecikmelerin ayarlandığı ve kaldırıldığı düzeyde. Fazla çekmenin ne olduğu ve nasıl tespit edildiği gibi gerekli açıklamalardan memnun kaldım. Yeniden çizmeme örnekleri: fraktal, zikzak. <...>

2. Her öğe için açıklamalarla danışmanların işlevselliğinin sınıflandırılması . Gösterge, gösterge olmayan Uzman Danışmanlar. Sinyalleri işleme yöntemleri: çubuğun içinde, kapanışta. Bakım seçenekleri: sondaki, başabaş, ortalama. Para yönetimi: seçenekler. <...>

3. Gelecekteki danışmanın işlevselliğinin anketi. Anketin sonucu, müşterinin ihtiyaç duyduğu işlevselliğin yaklaşık bir taslağı olacaktır. Her bir işlev için karmaşıklık katsayısını ayarlayabilirsiniz. Bu, müşteriyi geliştirme maliyetine yönlendirmeye izin verecektir.

4. Bitmiş çözümün kontrol edilmesi. Burada EA'nın hatalar ve işlevsel olmayan geliştirme için nasıl test edileceğini açıklayabilirsiniz. Tespit edilen hataların açıklanması ve çalışmama nasıl açıklanır.

Bulgular. Öneriler.

ps Siparişlerin en az %80'i tipiktir ve işlevleri önceden bilinen bir sınıflandırma şemasına uyar.

ps2 Composter'ın iki makalesinde birçok nokta anlaşılır bir şekilde anlatılıyor. Çapraz referans yapabilir, ödünç alabilir, netleştirebilirsiniz.

 
Rashid Umarov :

Şimdilik, ne tür danışmanların sipariş edildiğini, hangilerinin kategorilere ayrılabileceğini anlamak istiyorum.

  • Martingal
  • AntiMartingale
  • Çoklu parabirim
  • kafa derisi yüzücü
  • vb.

Serbest Çalışmada seçenekler nelerdir?

Size kişisel olarak birkaç an yazdım. Şimdi sadece kamuoyunda tartışmaya açıyorum.


Bu sınıflandırma en yaygın olanıdır, ancak Expert Advisor'da kullanılan işlevselliği yansıtmaz.

Örneğin, "ızgara" - sadece bir ızgara olabilir, martin olabilir veya ilan olabilir - burada belirleyici faktör "lot hesaplama yöntemi" dir.

Bu nedenle, kullanılan işlevselliğe göre sınıflandırmak gerekir - o zaman danışmanın yapısı ve karmaşıklığı netleşecektir - ve bu tam olarak TOR'u derlemek için gerekli olan şeydir.

Sınıflandırma en zor konudur - yaklaşık olarak bayanların ana hatları, ancak daha fazla ayrıntıya ihtiyacınız varsa, o zaman burada oturmanız ve iyice düşünmeniz gerekir:

1. Açılacak sinyalin türüne göre:
-- gösterge
-- gösterge olmayan

2. Kapatılacak sinyalin türüne göre:
-- basit (al, durdur, açmak için dönüş sinyali)
-- gösterge
-- kümülatif durma/alma (ortalama denir)
-- sonuca göre (kar/zarar)

3. Parti hesaplama yöntemine göre ("para yönetimi" diyebilirsiniz, ancak bu tam olarak doğru değildir):
-- basit
-- bakiyenin yüzdesi olarak
-- "martingale" türü (lot bir katsayı ile artırıldığında)
-- "ilan" yazın (lot hedef fiyattan hesaplandığında)

4. Açık bir pozisyonu/emirleri desteklemek için:
-- ızgara (bir siparişin ardından bir siparişler ızgarası geldiğinde)
-- kilitleme
-- ortalama
-- sondaki durdurma
-- başa baş

5. Çoklu para birimi (birden çok para biriminin farklı anlayışları vardır)

....

- daha fazla düşünmek gerekir ve çok, çok fazla açık değildir - yani. olanı ve karşılaşılanı kelimenin tam anlamıyla "atmak" ve sınıflandırmak gerekir.


Ancak sınıflandırma oldukça karmaşık bir eğlencedir - girişlerin açılması için bir sinyale göre - sinyal tanımlama türüne göre (kapalı bir çubukta, bir çubuk içinde) bir sınıflandırma da vardır.

Belirtmek istediğim tek şey "martingale", "scalping" gibi bir sınıflandırmadır. pratikte hiçbir şey söylemez. Detay gerekli.

Bu arada, tam bir sınıflandırma yaparsanız, "danışman menüsü" gibi bir şey yapabilirsiniz - "kuşları" ayarlayın ve TK hazır.

 
Rashid Umarov :

Makale Planının yeni yinelemesi

Danışman türleri

Sinyal - gösterge sinyallerine göre

Çoklu sipariş - her türlü ızgara

Yarı manuel - tüccarın eylemlerine tepki (nesneler, tuş vuruşlarının engellenmesi, manuel olarak açılan bir emrin alınması)

Yardımcı - çizin, gönderin, çizelgeler ve alıntılarla çalışın, vb.

İndiriciler - siteden bazı bilgileri indirin

Fotokopiler - kopyalama işlemleri ve terminallerin diğer etkileşimleri

MetaTrader 5 için hesap türü


Sinyal ve Çoklu sipariş - gösterge Uzman Danışmanı (genel olarak adlandırıldığı gibi), bir yönde birkaç sipariş açmanıza ve ardından bu birkaç siparişle bir ızgara gibi çalışmanıza olanak tanır. Aslında, "ızgara" dedikleri zaman, birbirlerinin adımlarıyla emirleri açmak anlamına gelir ("siparişler ızgarasını germek" gibi bir şey).

Onlar. Aslında, şebeke olmayan bir şebekeden bir şebeke çok koşullu bir farklılığa sahiptir ve bu fark "açılış koşulları" düzeyindedir - emirlerin gösterge sinyallerine göre açılabileceği, bir mesafe veya başka bir şeyle beklemeye alınarak ayarlanabilir

Yarı manuel ve daha fazla destek, yalnızca bir açılış bloğuna sahip olmayan, sadece bir destek bloğuna sahip olan bir gösterge Uzman Danışmanının özüdür.

"martingale/antimartingale" genellikle aynı işlevselliktir ve lot hesaplamasında son açılış veya çoğunlukla kapanış sonuçlarına göre farklılık gösterir.

 

Parti hesaplama sistemleri (Bence tamamlandı, diğer seçenekler prensipte karşılanmadı):

-1- sabit

-2- bakiyenin %'si olarak (öz sermaye, puan değil, nadiren kullanılır)

-3- önceki açılış/kapanış sonuçlarına dayalı olarak (burada esasen son açık veya kapalı sipariş değildir, önemli olan lotun kendinden önceki lota bağlı olmasıdır - bir veya birkaç siparişin lotu, burada da dikkate alınır)

-4- hareketin hedefinden (burada zararı durdurun boyutu, kar al boyutu dikkate alınır, önemli değil, puan cinsinden mesafenin dikkate alınması önemlidir)


2. öğe Bakiyenin %'si iki hesaplama yöntemi: a) mevduatın % kaybı dikkate alınarak ve b) mevduatın büyüklüğü ile orantılı olarak.

Bakiyenin %'si bazen "temiz" ve bazen de stoploss'un boyutu dikkate alındığında (4. nokta budur)

öğe 3. kapanış sonuçlarına dayalıysa, bu bir sipariştir -- açılış sonuçlarına dayalıysa, bir siparişler tablosu zaten oluşturuluyor.

burada martingale lot büyüklüğünü 2 kat artırmak gibidir - bu özel bir durum - rulet oyun sistemleri var, burada olabilecek tüm olası durumları açıklıyorlar.

4. öğe burada iki seçenek vardır: a) durdurmanın boyutunu dikkate alarak % risk ve b) alma boyunca hareket etme hedefinde (bu, bir emir ızgarası oluşturulduğunda "ilan" şemasıdır).


ortalama alma, parti hesaplaması için geçerli değildir - ortalama alma, kârı al ve zararı durdur hesaplamanın bir yoludur.

 

ızgaralar tek yönlü ve çift yönlüdür.

tek yönlü, her yön (alış ve satış) bağımsız olduğunda.

tüm şebekeleri tek bir işlevle birbirine bağlar - bu, şebekenin kapandığı belirli bir fiyat seviyesi olarak ortalamadır.

ortalama alma hem alma (hareket üzerine kapanma) hem de durma (harekete karşı kapanma) ile gerçekleşir.

alma genellikle sabittir.

stop dinamik olabilir (örneğin, başa baş veya takip).


MT5'te, ortalama alma sorunu netleştirme ile çözülür - bu nedenle, MT5'te (ağ oluşturma), MT5'in (hedge) aksine, ızgaralarla çalışmanın kendine has özellikleri vardır.

bu özellikler yalnızca doldurma (ızgara seviyesinin açılması) değerlendirilirken ve iş toplam konumundan geçmezse (ızgarada, her sipariş bağımsız olarak davranabilir) görünür.

 

işlevsel:

- açılış bloğu (göstergelerin sinyalinde, önceki açılış / kapanışın sonuçlarında, kural olarak, bir adım)

-- lot hesaplama bloğu (para yönetimi, ancak para yönetimi lot hesaplama ile sınırlı değildir)

-- ilk durdurma hesaplama bloğu (sabit ve dinamik)

-- ilk alma hesaplama bloğu (sabit ve dinamik)

-- izleme bloğu -- izleme farklı olabilir: a) tamamlama, b) zararı durdurma izleme (başabaş, takip eden, sabit ve dinamik bir tane olduğu açıktır), c) izleme alma (ortalama), d) lot boyut takibi (kısmi kapatma, doldurma, kısacası)

-- kapanış bloğu (kural olarak, bu gösterge sinyalleriyle kapanıştır, kârla kapanıştır - al/stop ile kapanışın bağımsız bir sınıflandırması vardır)

-- ticaret kısıtlama bloğu (zaman sınırı, diğer faktörler)

-- bilgi bloğu (bilgi panelleri)

haber danışmanları, fotokopiciler için geçerli olan - elbette bağımsız olarak sunulabilirler, ancak yukarıda açıklanan işlevsellikte yazılabilirler.

 

Bir barın açılışında ve bir barın içinde bir sinyal oluşturmaktan bahsediyorsak, o zaman burada şunu vurgulamak gerekir:

-- "barın açılması" anlayışı, çünkü kaymalar olabilir, örneğin, gösterge sinyallerinin kaldırılması açısından basit bir durum değil, çubuk kapanmadan 10 saniye önce bir giriş

-- sinyal onay bloğu, çünkü çubuğun açılışında, sinyal çubuğun kapanmasıyla onaylanır, ancak çubuğun içinde sinyal "yürüyebilir" ve bu konuda bir şeyler yapılması gerekiyor.

 

piyasaya giriş ve mevduat girişi farklıdır:

- giriş noktasının istikrarını anlamak (giriş noktası piyasa tarafından bilinmiyor - beklemede olarak biliniyor) - bazen bekleyen girişin yerine pazar girişi geliyor, ancak aynı zamanda EA sürekli olarak seviyeyi kontrol etmek zorunda kalıyor geçitler

-- onay bloğu ihtiyacı (gecikmelerle girildiğinde) -- bu blok, bir satış gecikmesi tetiklendiğinde bir satın alma emrinin kapanmasını organize etmenizi sağlar -- MT5'te netleştirme sırasında bu sorun lot hesaplamasına aktarılır blok, böylece koordinasyon işlevselliğini ortadan kaldırır

Neden: