- 10 puan 3.mq4
- Hatta kırmak için Durdur'u hareket ettirin
- Göstergelerin tanıtımı
Merhaba.
Peki bu ne kadar... Dosyalara bölemeyecek kadar çok mu?
![Большой проект! При самостоятельной разработке (одним человеком) сколько строк кода у Вас получается при создании Вами Большого проекта? Большой проект! При самостоятельной разработке (одним человеком) сколько строк кода у Вас получается при создании Вами Большого проекта?](/i/community/logo_mql5_small.png)
- 2016.03.20
- www.mql5.com
Merhaba.
İki ana ilke:
1. Kodu işlevlere bölün. Bir işlev, bir bakışta kapsayabilmek için az çok mantıksal olarak eksiksiz olmalı ve birden fazla ekran olmamalıdır.
2. Genel değişkenlerin sayısını azaltın. Global değişkenlerden sadece program çalışması sırasında değişmeyen parametrelerin kullanılması arzu edilir.
...ve ilerisi:
3. Nesneye yönelik programlama.
4. Kodu birkaç dosyaya yerleştirme (hata ayıklama burada biraz daha karmaşık hale gelir, ancak mantıklıdır).
Evet, her şey çok basit: Tek tek işlevleri doğru bir şekilde belgelemeniz ve bunları ayrı bir dosyaya ayırmanız gerekiyor. Ana dosya hemen küçülecek ve daha okunabilir hale gelecektir.
Her zaman bir mq4/mq5 dosyam ve sınıfları olan bir grup mqh dosyam vardır, her sınıfın ayrı bir dosyası vardır. Genel olarak, endüstriyel gelişmede, tam olarak yaptıkları şey budur. Her şeyin serpiştirildiği tıka basa dolu kilometre dosyaları yok.
Ve sonra bazen tüm danışman OnTick'e sığdığında başyapıtlarla karşılaşırsınız, bu çirkin sayfada siparişleri 20 kez açmak için aynı kod parçaları vardır. Hemen bir kusmuk torbası almak istiyorum))
Merhaba.
Bu tarzda her zaman sabit olan ve asla değişmeyen fonksiyonlar yazmayın.
void CloseOrders( int cmd) { for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--) { if ( OrderSelect (i, SELECT_BY_POS )) { if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Magic) { if ( OrderType ()== OP_BUY && cmd== OP_BUY ) { if (! OrderClose ( OrderTicket (), OrderLots (), Bid ,Slippage,Blue)) { Print ( "Order BUY not close! Error = " , GetLastError ()); } } if ( OrderType ()== OP_SELL && cmd== OP_SELL ) { if (! OrderClose ( OrderTicket (), OrderLots (), Ask ,Slippage,Red)) { Print ( "Order SELL not close! Error = " , GetLastError ()); } } } } } }
Onları kısaca yazın, zaten kimse onlara bakmaz ve satırlar bunun yarısını alır.
void CloseOrders( int cmd) { for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--) { if ( OrderSelect (i, SELECT_BY_POS )) { if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Magic) { if ( OrderType ()== OP_BUY && cmd== OP_BUY ) { if (! OrderClose ( OrderTicket (), OrderLots (), Bid ,Slippage,Blue)) Print ( "Order BUY not close! Error = " , GetLastError ()); } if ( OrderType ()== OP_SELL && cmd== OP_SELL ) { if (! OrderClose ( OrderTicket (), OrderLots (), Ask ,Slippage,Red)) Print ( "Order SELL not close! Error = " , GetLastError ()); } }}}}
Sürekli olarak kod hakkında yorum yapın, bu kod parçasının neden sorumlu olduğu, zor değil ve sonlandırırken, kodun ne olduğunu her zaman bileceksiniz ve çalışma süresini azaltacaksınız.
Bu tarzda her zaman sabit olan ve asla değişmeyen fonksiyonlar yazmayın.
Bunları kısaca yazın, zaten kimse onlara bakmaz ve bu satırların yarısını alır
Sürekli olarak kod hakkında yorum yapın, bu kod parçasının neden sorumlu olduğu, zor değil ve sonlandırırken, kodun ne olduğunu her zaman bileceksiniz ve çalışma süresini azaltacaksınız.
Yorum, program metninin yarısını işgal etmelidir.
Bu tarzda her zaman sabit olan ve asla değişmeyen fonksiyonlar yazmayın.
Bunları kısaca yazın, zaten kimse onlara bakmaz ve satırlar bunun yarısını alır.
Sürekli olarak kod hakkında yorum yapın, bu kod parçasının neden sorumlu olduğu, zor değil ve sonlandırırken, kodun ne olduğunu her zaman bileceksiniz ve çalışma süresini azaltacaksınız.
Parantezleri yeniden düzenlemek onu daha az saçma yapmaz. Tavsiye vermeden önce - seviyenizi en azından ortalamaya yükseltin.
Yorum, program metninin yarısını işgal etmelidir.
Hayır, o zaman kodun hemen% 90'ı yorumlardır. Aynı zamanda, daha fazla yorum koyabilmeniz için mümkün olduğunca anlamsız ve zayıf okunabilir koda ihtiyacınız var!
Fikirleriniz de ilgiyi hak ediyor. Onları tartışmak için getirin
Uzun zamandır sormak istiyordum. MKL5'te dahil edilen dosyalardan, sınıflardan gösterge verileri alırsak, optimizasyon daha hızlı olur mu?
Yani, EA'nın kendi kodunda hiçbir gösterge tutamacı çağrılmaz.
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz