MQL5 Sihirbazı ve Standart Ticaret Sınıfı Kitaplığı hakkında sorular - sayfa 12

 
Reshetov :

Şimdiye kadar, yukarıdaki dezavantajları ortadan kaldırmanıza izin veren tek kişi:

Konum izleme ve para ve risk yönetimi modüllerinden sinyal modülünün Direction() yöntemi ile döndürülen değerlerin okunmasına açık erişim.

Onlar. pozisyon izleme ve para ve risk yönetimi modüllerine bir yöntem daha ekleyin; örneğin, sinyal modülü sınıfının bir örneğine atıfta bulunan ve Direction() yönteminin bir sonucu olarak dönen çift getMainSingnal() tanımlayıcısı ile sinyal modülü. Bu bilgi alışverişi salt okunur modda gerçekleştiği için güvenlikten hiçbir şekilde ödün verilmeyecektir.

Bunun için ihtiyacınız var

  1. CExpertSignal sınıfının bir örneğini depolamak için CExpertMoney ve CExpertTrailing sınıflarındaki alanları seçin; ana sinyal modülü.
  2. CExpertSignal sınıfının tam da bu örneği, yani. bu modüllerin sınıf eşgörünümlerinin başlatılması sırasında sinyal modülü pozisyon takip ve para ve risk yönetimi modüllerine aktarılmalı ve madde 1'de belirtilen alanlara kaydedilmelidir. Doğal olarak, bunu yapmadan önce, sinyal modülü sınıfının bir örneğinin zaten var olduğunu kontrol etmek (emin olmak) da gereklidir, yani. yaratıldı.
  3. CExpertMoney ve CExpertTrailing sınıflarında, sınıfların ilgili veri alanlarında depolanan sinyal modülü sınıfının bir örneğine erişen ve bunun bir sonucu olarak sinyalin Direction() yönteminin sonucunu döndüren çift getMainSingnal() tanımlayıcısıyla ek yöntemler oluşturun. modül.

Neredeyse her şey açık. Açıklığa kavuşturmak istediğim tek şey şudur: "Neden MM düzeyinde bir sinyal ve takip etme arzunuz temel sınıflar düzeyinde uygulanmak zorunda?".

Bence kötü olacak (yani kötü). Algoritma tipik değil (bana göre). Anladığım kadarıyla, kendi MM ve takip modülleriniz var (sinyale bağlı kendi algoritmalarınızla).

Bu yüzden onlara karşılık gelen 1.,2.,3'ü koyun.

 
uncleVic :

Neredeyse her şey açık. Açıklığa kavuşturmak istediğim tek şey şudur: "Neden MM düzeyinde bir sinyal ve takip etme arzunuz temel sınıflar düzeyinde uygulanmak zorunda?".

Bence kötü olacak (yani kötü). Algoritma tipik değil (bana göre). Anladığım kadarıyla, kendi MM ve takip modülleriniz var (sinyale bağlı kendi algoritmalarınızla).

Bu yüzden onlara karşılık gelen 1.,2.,3'ü koyun.

Gerçek şu ki, Master CExpert sınıfını temel sınıf olarak alır. Ve bu nedenle, oluşturduğum modüllerde gerekli işlevleri hiçbir şekilde yeniden tanımlayamayacağım, çünkü sinyal modülü sınıfının bir örneğine erişimleri olmadığından, başlangıçta bu çok temel CEхpert sınıfı ile zaten uyumsuzdurlar.

Sonuçta, sinyal modülü sınıfının bir örneği yalnızca Expert.mqh dosyasının 67. satırındaki CExpert sınıfı alanında saklanır.

CExpertSignal    *m_signal;                   // trading signals object

ve bu alan, temelinde oluşturulan diğer sınıflar ve modüller için paylaşılmaz (erişilemez).

Bu nedenle, master ile uyumlu olması için CExpertMoney ve CExpertTrailing sınıflarını geçersiz kılmamın bir yolu yok.

Sonuçta, ana sınıflarda erişim kapalıysa, soyundan gelenler bunu hiçbir şekilde almayacak.


Köke bakın (c) Kozma Prutkov "Aforizmalar"

 

CExpertSignal sınıfının örneklerini geçmeden sinyal modülünden pozisyon izleme ve para ve risk yönetimi modüllerine alım satım sinyallerinin nasıl aktarılacağını anladım.

CExpertMoney ve CExpertTrailing sınıflarına iki satır ekleyelim:

   double m_signaldirection; // Direction from signals module
 
   void               setSignalDirection( double value )  { m_signaldirection = value ; }
  

ExpertMoney.mqh dosyası için:

 class CExpertMoney : public CExpertBase
  {
protected :
   //--- Direction from signals module  
   double m_signaldirection;
   //--- input parameters
   double             m_percent;

public :
                     CExpertMoney();
   void               setSignalDirection( double value ) { m_signaldirection = value ; }         
   //--- methods of setting adjustable parameters
   void               Percent( double percent)    { m_percent=percent; }
   //--- method of verification of settings
   virtual bool       ValidationSettings();
   //---
   virtual double     CheckOpenLong( double price, double sl);
   virtual double     CheckOpenShort( double price, double sl);
   virtual double     CheckReverse(CPositionInfo* position, double sl);
   virtual double     CheckClose(CPositionInfo* position);
  };

ExpertTrailing.mqh dosyası için:

 class CExpertTrailing : public CExpertBase
  {
protected :
   
    //--- Direction from signals module
   double m_signaldirection;
public :
   //---
   void               setSignalDirection( double value ) { m_signaldirection = value ; }         
   virtual bool       CheckTrailingStopLong(CPositionInfo *position, double & sl, double & tp)  { return ( false ); }
   virtual bool       CheckTrailingStopShort(CPositionInfo *position, double & sl, double & tp) { return ( false ); }
  };


Böylece alım satım sinyallerinin iletilmesi için gerekli alanları ve yöntemleri belirledik. Şimdi bu alım satım sinyallerini modül sınıflarına iletmemiz gerekiyor. Bunu Expert.mqh dosyasında yapacağız, yani. CExpert sınıfı için

Alım satım sinyallerini pozisyon takip sınıfına aktarmak için bir satır yazacağız:

m_trailing.setSignalDirection(m_signal.Direction());

ve her takipten önce çağrılan yöntemin en başına, yani CheckTrailingStop():

 bool CExpert::CheckTrailingStop()
  {
//--- Set signal direction to trailing stops module
   m_trailing.setSignalDirection(m_signal.Direction()); 
//--- position must be selected before call
   if (m_position.PositionType()== POSITION_TYPE_BUY )
     {
       //--- check the possibility of modifying the long position
       if (CheckTrailingStopLong()) return ( true );
     }
   else
     {
       //--- check the possibility of modifying the short position
       if (CheckTrailingStopShort()) return ( true );
     }
//--- return without operations
   return ( false );
  }

Alım satım sinyallerini para ve risk yönetimi sınıfına aktarmak için bir satır yazacağız:

m_money.setSignalDirection(m_signal.Direction());

ve her pozisyon açılışından önce çağrılan yöntemin en başına, yani CheckOpen():

 bool CExpert::CheckOpen()
  {
//--- set signal direction to money management module
   m_money.setSignalDirection(m_signal.Direction());
   if (CheckOpenLong())   return ( true );
   if (CheckOpenShort()) return ( true );
//--- return without operations
   return ( false );
  }

Ve işte bu, sorun çözüldü.

Artık pozisyon izleme ve para ve risk yönetimi modüllerindeki alım satım sinyallerinin güncel değerini şu alanın değerine bakarak almak mümkün: m_signaldirection. Geriye sadece CExpertMoney ve CExpertTrailing sınıflarındaki yeni alanların ve yöntemlerin varlığı hakkında belgelere yazmak ve değiştirilen dosyaları güncellemelere eklemek kalıyor.

 

İşte dosyalar. Expert Advisor'daki 100 ve 123. satırlar elle yazılmıştır.

Başka sorunuz varsa, lütfen iletişime geçin.

 
uncleVic :

İşte dosyalar. Expert Advisor'daki 100 ve 123. satırlar elle yazılmıştır.

Başka sorunuz varsa, lütfen iletişime geçin.

Kahretsin, bu geliştiriciler ne tür insanlar? Halihazırda ticaret sistemleri oluşturma konusunda deneyime sahip olan ve kaynağın manuel olarak iyileştirilmesi gerektiğinden son kullanıcılar için pratik olarak uygun olmayan ticaret sistemleri oluşturmaya yönelik kendi vizyonlarını icat etmeyen tüccarlar tarafından ihtiyaç duyulan şeyleri dinlemeye ne zaman başlayacaklar? ? İçeri girip ellerimle tamir edebileceğimi ne kadar açıklayabilirim ve o zaman bile programlamaya aşina olmama rağmen neyin ve neden olduğunu anlamam uzun zaman alacak. Ve son kullanıcının koda girmesi pek olası değildir, çünkü. Programlamayı anlamıyor. Kendiniz ilan ettiniz, alıntı yapıyorum:

" Programlama dilleri bilgisi artık ticaret robotları oluşturmak için bir ön koşul değil. " Bkz. https://www.mql5.com/ru/articles/240

"Zaten MQL5 Sihirbazı'nın ilk sürümünde, MQL5 dilinde kaynak kodu şeklinde basit modüller seti olarak kullanıma hazır bir Expert Advisor'ı hızlı bir şekilde oluşturmak mümkündü. Bunun için MQL5 dili bilgisi gerekli bile değildi , " MQL5 Sihirbazında Uzman Danışmanınızı Oluşturun " makalesini okumanız yeterliydi. bkz. https://www.mql5.com/ru/articles/275

Ve şimdi programlama dilleri bilgisinin gerekli olduğu ortaya çıktı, çünkü. Sihirbaz çalıştıktan sonra kullanıcının koda tırmanması ve orada bir şeyi düzenlemesi gerekir. Onlar. tüm beyanlar eski beyanlardır - geliştiricilerin icatları ve aldatmacaları.

Örneğin, başka bir modül geliştiricisi tarafından yazılmış bir modülün verdiği alım satım sinyalinin seviyesine göre pozisyon açması gereken kendi para ve risk yönetimi modülümü yazacağım. Sonuç olarak, modülümün artık master ile uyumlu olmadığı ortaya çıktı. Kullanıcılara, modülün çalışmaya başlaması için kodda bir yere gitmeleri ve bazı satırlar eklemeleri gerektiği nasıl açıklanır? Ne de olsa, modül geliştiricilerin modüller oluşturması gerekir ve master, modüllerin en azından birbirleriyle çakışmaması ve birbirleriyle tamamen uyumlu olması için bunları otomatik olarak tek bir tutarlı sistemde birleştirmelidir. Ve ustanın bunu yapmadığını anlıyorsunuz, çünkü. ondan sonra, koda tırmanmanız ve her şeyi manuel olarak yeniden yapmanız gerekir.

Son mesajımda belirttiğim ana sınıf dosyalarına sadece altı satır yazmak gerçekten çok mu zor? Ve sorun kendi kendine çözülecek ve kimsenin kaynak koduna girip orada bir şeyi düzenlemesi gerekmeyecek. Ellerinin düştüğünü? Sihirbazdan sonra bir şeyi manuel olarak nasıl düzelteceğinizi gösteren bir gösteriyle neden bazı çöplerle zaman harcayasınız? Daha sonra kimsenin benzer sorunları çözmek için koda girmesine gerek kalmaması için aynı zamanı daha faydalı bir şeye harcayamaz mıyız?

Şirketinizin bir yandan tam otomasyon ilan etmek için nasıl bir ideolojisi var ve söz konusu olduğunda, sözde "otomasyon" dan sonra koda girmeyi ve her şeyi kalemlerle yeniden yapmayı teklif ediyorlar?

Genel olarak, anladığım kadarıyla, tüm bunları açıklamak işe yaramaz. Ve tüccarların MT5'e geçmek istememelerine şaşıracak bir şey yok, çünkü platform ham ve otomatik ticaretin rahatlığı için değil, bu platformun geliştiricilerinin rahatlığı için yapıldı. Ve kullanıcı programlamayı tam olarak öğrenmiyorsa, otomatik ticaretten mümkün olduğunca uzak durması onun için daha iyidir.

Eğer istemiyorsan, zorunda değilsin. Yapacak başka bir şeyiniz yoksa, burada oturun ve her kullanıcıya kalemlerle kaynak koduna nereye ve nasıl girmeleri gerektiğini ve tam olarak neyi düzeltmeleri gerektiğini açıklayın.

Собери свой торговый советник в Мастере MQL5
Собери свой торговый советник в Мастере MQL5
  • 2011.01.14
  • MetaQuotes Software Corp.
  • www.mql5.com
Знание языков программирования теперь не является обязательным условием для создания торговых роботов. Если раньше это действительно служило непроходимым препятствием для реализации своих торговых стратегий, то появление Мастера MQL5 в корне изменило ситуацию. Начинающие трейдеры могут перестать тревожиться из-за отсутствия опыта программирования - с новым визардом, позволяющим быстро генерировать код советника, он не понадобится.
 
Korkarım ki ya maksimalizmin tutsağısınız ya da araçların uygulanabilirliğinin sınırlarını anlamıyorsunuz.

Her halükarda, böyle bir tartışma düzeyi ve izin verilen abartı sınırının ötesinde hemen hemen her sorunun kaldırılması ile sizinle hiçbir iş yapılamaz. Gerçek iş, sözlü demagojiyi değil, bilinçli karar vermeyi içerir.
 
Renat :
Korkarım ki ya maksimalizmin tutsağısınız ya da araçların uygulanabilirliğinin sınırlarını anlamıyorsunuz.

Her halükarda, böyle bir tartışma düzeyi ve izin verilen abartı sınırının ötesinde hemen hemen her sorunun kaldırılması ile sizinle hiçbir iş yapılamaz. Gerçek iş, sözlü demagojiyi değil, bilinçli karar vermeyi içerir.

Evet, genel olarak, bir iş istemedim, yani. para kazanmak uğruna ve gönüllü olarak yapılan işbirliğinden oldukça memnun kaldım. Nasıl ve nerede para kazanacağıma kendim karar veririm.

Eh, olmayacak ve olmamalı. Bizim işimiz teklif, sizin hakkınız reddetmek. Dedikleri gibi: usta ustadır.

Şirketiniz zaten her şeyi fark ettiyse ve hatta aptallara sözde "hazır" Uzman Danışmanların nasıl oluşturulacağını öğrettiyse ve bunların yalnızca Sihirbazı göstermek için uygun olmaları, ancak otomatik ticaret için uygun olmaması önemli değil, tarihsel veriler, öz sermaye eğrisi korkutucu görünüyor çünkü. modülerlik sağlanır, ancak tam teşekküllü bir ticaret sistemi için modüllerin tutarlılığı yoktur, o zaman size müdahale etmeyeceğim ve ticaret sistemlerinin nasıl oluşturulması ve oluşturulması gerektiğine dair kurumsal vizyonunuzu daha da teşvik etmeyeceğim.

İyi şanlar!

 
Reshetov :
...

Örneğin, başka bir modül geliştiricisi tarafından yazılmış bir modülün verdiği alım satım sinyalinin seviyesine göre pozisyon açması gereken kendi para ve risk yönetimi modülümü yazacağım. Sonuç olarak, modülümün artık master ile uyumlu olmadığı ortaya çıktı. Kullanıcılara, modülün çalışmaya başlaması için kodda bir yere gitmeleri ve bazı satırlar eklemeleri gerektiği nasıl açıklanır? Ne de olsa, modül geliştiricilerin modüller oluşturması gerekir ve master, modüllerin en azından birbirleriyle çakışmaması ve birbirleriyle tamamen uyumlu olması için bunları otomatik olarak tek bir tutarlı sistemde birleştirmelidir. Ve ustanın bunu yapmadığını anlıyorsunuz, çünkü. ondan sonra, koda tırmanmanız ve her şeyi manuel olarak yeniden yapmanız gerekir.

Son mesajımda belirttiğim ana sınıf dosyalarına sadece altı satır yazmak gerçekten çok mu zor? Ve sorun kendi kendine çözülecek ve kimsenin kaynak koduna girip orada bir şeyi düzenlemesi gerekmeyecek. Ellerinin düştüğünü? Sihirbazdan sonra bir şeyi manuel olarak nasıl düzelteceğinizi gösteren bir gösteriyle neden bazı çöplerle zaman harcayasınız? Daha sonra kimsenin benzer sorunları çözmek için koda girmesine gerek kalmaması için aynı zamanı daha faydalı bir şeye harcayamaz mıyız?

...

Yaklaşımınız sınıf kapsüllemesini bozuyor ve sonuç olarak hiyerarşik karışıklığa neden oluyor.

Boş zamanlarınızda Steve McConnell'in Perfect Code kitabını okuyun.

Basitçe söylemek gerekirse, Master'ı eldiven üretimi için bir fabrika olarak hayal edin, sağ ve sol eller için beş parmaklı bir damga var, ancak daha sonra altı parmaklı eldivenler için küçük bir sipariş beliriyor. Sonuçta böyle insanlar var. Ama onlar için bir damga yapmak yerine (ki bu bir yığın yapacak ve şimdilik orada duracak), kayan bir parmak yaparak beş parmaklı damgada değişiklik yapmayı öneriyorsunuz. Bir o kadar evrensel gibi ve her şey harika, ama hayali milyonlarca beş parmaklı eldivenin kalıbının gücü evrensellik uğruna zayıflatılacak (küçük bir ihtiyaç uğruna, bazen altı parmaklı olanları serbest bırakın) . Ve sonra 300 dört parmaklı bir parti için bir sipariş olacak ve yine kanıtlanmış, güvenilir bir şablonu parçalayacak.

Size yukarıda söylendi:

"Neden MM düzeyinde bir sinyal ve takip etme arzunuz temel sınıflar düzeyinde uygulanmalı?".

Bence kötü olacak (yani kötü). Algoritma tipik değil (bana göre). Anladığım kadarıyla, kendi MM ve takip modülleriniz var (sinyale bağlı kendi algoritmalarınızla).

Standart İncil'de değişiklik yapmak yerine, onu genişletmek (miras yoluyla) üzerinde çalışmak daha iyidir. O zaman gerçekten ilginç olacak.

Not Ayrıca, insanların kodun incelikleriyle uğraşmak zorunda kalmamaları için (yukarıda yazdığınız gibi), bitmiş modülleri bibl'e sarabilir ve pazara dökebilir, ardından modülü Reshetov'dan bağlayabilir ve basabilirsiniz. [ganimet indir] düğmesi

 
Urain :

Yaklaşımınız sınıf kapsüllemesini bozuyor ve sonuç olarak hiyerarşik karışıklığa neden oluyor.

Boş zamanlarınızda Steve McConnell'in Perfect Code kitabını okuyun.

Basitçe söylemek gerekirse, Master'ı eldiven üretimi için bir fabrika olarak hayal edin, sağ ve sol eller için beş parmaklı bir damga var, ancak daha sonra altı parmaklı eldivenler için küçük bir sipariş beliriyor. Sonuçta böyle insanlar var. Ama onlar için bir damga yapmak yerine (ki bu bir yığın yapacak ve şimdilik orada duracak), kayan bir parmak yaparak beş parmaklı damgada değişiklik yapmayı öneriyorsunuz. Bir o kadar evrensel gibi ve her şey harika, ama hayali milyonlarca beş parmaklı eldivenin kalıbının gücü evrensellik uğruna zayıflatılacak (küçük bir ihtiyaç uğruna, bazen altı parmaklı olanları serbest bırakın) . Ve sonra 300 dört parmaklı bir parti için bir sipariş olacak ve yine kanıtlanmış, güvenilir bir şablonu parçalayacak.

Size yukarıda söylendi:

Standart İncil'de değişiklik yapmak yerine, onu genişletmek (miras yoluyla) üzerinde çalışmak daha iyidir. O zaman gerçekten ilginç olacak.
Evet, ebeveyn sınıflarında mevcut olmayanı kalıtım yoluyla almanın imkansız olduğunu daha ne kadar söyleyebiliriz? Sonunda aynı Steve McConnell "Mükemmel Kod" kitabıyla ne zaman tanışacaksınız?
  1. Yaklaşımım kapsülleme ilkelerini ihlal etmiyor, çünkü önerdiğim varyantta, gereksiz her şey gizlidir ve modüller yalnızca çift değer şeklinde ve yalnızca okuma modunda bir ticaret sinyali alır. Bazılarının aksine, sadece OOP ile ilgili kitaplar okumakla kalmıyorum, aynı zamanda onları dikkatlice inceledim.
  2. Şablon olanlara altı parmaklı eldivenler oluşturmayı önermedim, yani. altıncı parmakları ek modüller şeklinde eklemek, ancak yalnızca mevcut tüm modülleri, aslında ticaret sistemleri için ana olan sinyal modülünden gelen sinyallerle koordine etmeyi önerdi, çünkü. tüm sistem onun emrinde çalışmalıdır. Modülerliği öneren sizdiniz, yani. değiştirilebilir parmaklı eldivenler. Ama her şey sizin tarafınızdan öyle bir şekilde yapıldığı için, sağ el, solun ne yaptığını bilmiyor, yani. diğer modüller sinyal modülünden bilgi alamaz ve hareketlerini onunla senkronize edemez, daha sonra eldivenleriniz farklı boyutlarda parmaklar (modüller) ile elde edilir, eldiveninizi takarken kullanıcı parmaklarından birinin küçük olduğunu ve içine hiçbir şeyin sığmadığını görür. o ve diğeri büyük ve çok fazla dışarı çıkıyor.

Örneğin, bir takip eden durdurma, modülün üçüncü taraf geliştiricisi tarafından yazılan bazı ayrı sinyal sistemine göre, örneğin hareketli bir ortalamaya veya bir paraboliğe göre yürütülür, sinyalleri bazı noktalarda sinyal modülünün çıktılarıyla çelişir ve tüm ticaret sistemi uyumsuz hareket etmeye başlar. Para ve risk yönetimi modülü de telepatik olarak alım satım sinyalinin zayıf olduğunu ve açılan pozisyonların hacmini azaltma zamanının geldiğini tahmin edemez ve ayrıca sinyal modülünden bağımsız bazı kurallara göre hareket eder, yani. biri dönüşlerde yavaşlamayı ister, diğeri gaza basar. Ve sözde ustanızın yardımıyla oluşturulan tüm ticaret sistemi, büyükbaba Krylov'un "Kuğu, kanser ve turna" adlı masalında olduğu gibi ortaya çıkıyor. Daha fazla ve daha az değil. Ve şirketiniz, otomobil ticareti için bize pervasız danışmanlar toplamanın bu muhteşem ideolojisini empoze etmeye çalışıyor. Ve buna ihtiyacımız var mı?

Sonuç olarak, sadece hem yatırımcıları hem de yatırımcıları korkutabilen bu tür özkaynak ve denge çizelgeleri ile alım satım sistemleri elde edilir, bakınız https://www.mql5.com/en/code/833




Ancak bu tür çizelgelerin nedeni, modülün yaratıcısı, bu durumda Nikolai Kositsin'in yanlış bir şey yapması değil, ticaret sisteminin diğer modüllerinin birbiriyle koordine edilememesi ve farklı hareket edememesidir.

Ancak, zaten açıklamak işe yaramaz. Platform geliştiricileri, sorunları çözen talihsiz altı satırı yazmak yerine, forumlara uzun ayak örtüleri yazacak, ticaret sistemlerinin geliştiricilerini demagojiyi yaymak, kapsülleme ilkelerini ve diğer ölümcül günahları ihlal etmekle suçlayacaklar, ancak hiçbir şeyi kaldırmayacaklar. kendi eksikliklerini ve yanlış anlamalarını düzeltmek için parmak.

Bu nedenle, daha fazla tartışma anlamsız. Fikrinizle kalın ve istediğiniz gibi hareket edin. Zaten yorgunum ve bir anlamı yok çünkü. platform geliştiricileri umursamıyor, çünkü kendi kullanımları için olmayan zanaatları ortaya koyuyorlar ve otomatik ticaret platformu kullanıcılarının aynı zanaatları kullanıp kullanamayacakları, geliştiricilerin hiç umrunda değil. İyi beslenen aç olanı anlamaz.

Модуль торговых сигналов, выполненный на основе индикатора Heiken_Ashi_Smoothed
Модуль торговых сигналов, выполненный на основе индикатора Heiken_Ashi_Smoothed
  • oylar: 7
  • 2012.02.23
  • Nikolay Kositsin
  • www.mql5.com
Модуль торговых сигналов для Мастера MQL5. Сигналом для открытия позиций служит изменение цвета свечи, формируемой индикатором Heiken_Ashi_Smoothed.
 
Reshetov :
...

Reshetov, bu ayak örtülerini bile duygularla okuyabiliyorum. Tartışmak istiyorsan tartış.

Sihirbazın özü, tüccarların ihtiyaçlarının çoğunu karşılayan bir şablon oluşturmaktır. Solucan üzerinde bir danışman şablonum var (kendim yazdım), ana işlevselliği belirliyor. Ve pratikte her zaman düzeltilmesi gerekir. Ancak, düzenlemeler minimum düzeydedir. Hiç düzenleme yapmamak için bir şablon oluştursaydım, boğulabileceğiniz tüm durumlar için çok büyük bir kod olurdu.

Master, halihazırda çalışmakta olan bir şablon oluşturur ve programlamayı hiç bilmeyen bir kişi onu olduğu gibi kullanabilir. Kodlamayı anlıyorsanız, onu istediğiniz şekilde değiştirmek zor değildir. Standart İncil'de bir şeyin nereden geldiğini ve her şeyin nereye gittiğini anlamak için sadece bir kez yeterlidir. Ayrıca standart İncil de örnek olarak kullanılabilir ve beğendiğiniz bölümleri kodunuza kopyalayıp yapıştırabilirsiniz.