MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1121

 
Roman :

Çünkü başlangıçta mevcut gerçeklerle birçok tutarsızlık var.
Ve bu tutarsızlıklar için bahaneler bulmaya çalışıyorsunuz.
Aksine, bir kene bir noktaya eşit olmadığını yazdım!
Bu sizin içsel, icat edilmiş noktanızdır.
Point'in sadece dört karakterin olduğu noktaya tam olarak karşılık gelmesi nedeniyle.
Ama beşinci haneyi girdikten sonra bahanelerinizle isim icat etmeye başladınız.

Hayır böyle değil. Mesafeyi nokta olarak değil, kene boyutlarında göstermeyi önerdiniz.

Bu saçmalık. Mesafe mesafedir. Ve kene boyutu, fiyatın bir seferde minimum düzeyde hareket ettiği adımdır.

Bu nedenle, A noktasından B noktasına olan mesafeyi değil, bu mesafeyi gidebileceğiniz adım sayısını göstermenizi istiyorsunuz.

Sana söylüyorum, her şey karıştı...

Gerçekliğiniz biraz bulanık. Genel kabul görmüş kavramların yarısını içermez. Kafanın dışında bir şey var.

 
Roman :

Muhtemelen, işlevden dönüş değerini döndürmeniz gerektiğinden.

Cevabınız için teşekkürler ama sorun hala çözülmedi... Değişen durumunu MQL'ye döndürmek için "str" fonksiyon parametresine ihtiyacım var

 extern "C" __declspec(dllexport) wchar_t* __stdcall ToString(wchar_t* &str)
{
        str = L "-- Я изменил параметр str :) --" ; // Вот это я хочу получить!
         return L "--- Привет! ---" ;
}

Şu anda MQL4'te:

 #import   "Win32Project1.dll"
   string ToString( string &str);
#import

Eh, işlev kendini çağırır:

 string str = "" ;
Print ( "-> Метод: " + ToString( str ));
Print ( "-> Параметр: " + str);

Sonuç olarak şunu alıyorum:

onlar. parametre olarak bir değer geçiliyor ama doğru değil... Bu sorunu nasıl çözebilirim? :)

 
Vadim Lin :

Cevabınız için teşekkürler ama sorun hala çözülmedi... Değişen durumunu MQL'ye döndürmek için "str" fonksiyon parametresine ihtiyacım var

Şu anda MQL4'te:

Eh,işlev kendini çağırır:

Sonuç olarak şunu alıyorum:

onlar. parametre olarak bir değer geçiliyor ama doğru değil... Bu sorunu nasıl çözebilirim? :)

Bay trolling için dinlenme günü.
 
Artyom Trishkin :

Terminal çökerse, yeniden başlatılması gerekecek. Göstergenin grafiğe yeniden eklenmesi veya Uzman Danışmanın bu göstergenin verileri kullanılarak başlatılması gerekecektir (daha sonra Uzman Danışman, erişirken bu göstergeyi kendisi yükleyecektir). Bu durumda (ve hatta çizelgede kurulu programların otomatik olarak yüklenmesiyle terminalin düzenli olarak yeniden başlatılmasıyla), gösterge tüm çizgilerini tekrar çizecektir - hiçbir yere hiçbir şey kaydetmeye gerek yoktur. Bu satırlar daha sonra tekrar okunabilir. Özellikle de okunmaları gerektiğinden.

Ve EA'nın yalnızca gösterge tarafından oluşturulan satırları izlemesi için, oluşturduğu satırların adlarına bakıp, adlarda yinelenen alt dizeler bulmaya çalışması yeterlidir - tüm satırlar için aynıdır. İşte bu alt dizelerde ve gerekli satırları arayın.

Çok basit - gösterge çalışırken nesnelerin listesine bakmanız yeterlidir.

Konudan sapıyoruz! Ne kadar çok tartışırsak, o kadar konu dışı! :)

Kişi yalnızca fiyat çizgiyi aştığında bir ETKİNLİK alması gerekiyordu...

Ayrıca, örneğimin neden "sorunlu" olduğunu merak etmeye başladım .. Aslında, prensipte ortaya konan sorunu çözüyor. Ayrıca - yazarın fantezileri, elimden geldiğince yardım ettim))


Konu dışıysa... ve terminali yeniden yüklerseniz, hatlar hiçbir yere gitmez ve büyük ihtimalle oldukları yerde kalırlar. Yeniden adlandırılmışlar veya bir etiketle işaretlenmişlerse, normal mantığı kullanarak, bu satırların zaten bir kez çalıştığını ve göz ardı edilmeleri gerektiğini anlayabilirsiniz. Ama bu görev asla böyle olmayacaktı)) Ayrıca, göstergenin çizgileri yeniden çizdiğini varsayalım, peki ne olmuş? Bazılarının zaten çalıştığını nasıl belirlersiniz?))

Grafikte izlenmesi gereken satırlar dışında (yazarın kendisinin belirttiği gibi) HİÇBİR ŞEY yoksa, teoride onları ada göre filtrelemeye bile gerek yoktur))

Ve elbette, teorik olarak, herhangi bir çizgi çizmemek, ancak daha sonra tüm seviyeleri bir dosyaya kaydetmek ve bunlardan hangisinin daha önce çalıştığını işaretlemek mümkündür. Ve terminali en az o kadar aşırı yükleyin, onları nesne adları olmadan bile hatırlayacaksınız))

 
Roman :

Peki, mantık nerede arkadaşlar.
Bu nedenle, bu büyük bir hatadır ve kasıtlı olarak bu şekilde yapılırsa sabotaj))

Petka: Mantık nedir, Vasiliy İvanoviç?

V.I: Peki, çok basit, bak, kibritin var mı?

Petya: evet var!

VE. Demek ki sigara içiyorsun ve eğer sigara içiyorsan içersin ve eğer içersen kızların arasında dolaşıyorsun, anladın mı?

Petka: evet, çok basit!

Petya'dan geçen bir Kızıl Ordu askerine - kibritleriniz var mı?

Kızıl Ordu: hayır

Petka: peki, o zaman sen "mavi"sin



MANTIK, bu çok garip ve MANTIK altında beklentilerinizi ayarlamanıza gerek yok

geliştirici yeni ENUM_TIMEFRAMES veri türüne bağlıysa, bu türü programın diğer bölümlerinde daha fazla kullanmaya kararlıdır - mantık budur


Not: Elbette, MT4'ün ticaret için neyin gerekli olduğunu hayal eden insanlar tarafından tasarlandığını ve bir grup uzaylının "diğer terminali" yazdığını iddia edebilirsiniz .... ama bu forumun iletişim formatının ötesine geçeceğiz, bu yüzden sabotaj hakkında konuşmaya değmez - onu verir ve eksik olanı kullanırız, terminalin performansı yeterli olduğu için kendimiz yazarız

bunun gibi bir şey

 
Igor Makanu :


MANTIK, bu çok garip ve MANTIK altında beklentilerinizi ayarlamanıza gerek yok

geliştirici yeni ENUM_TIMEFRAMES veri türüne bağlıysa, bu türü programın diğer bölümlerinde daha fazla kullanmaya kararlıdır - mantık budur


Not: Elbette, MT4'ün ticaret için neyin gerekli olduğunu hayal eden insanlar tarafından tasarlandığını ve bir grup uzaylının "diğer terminali" yazdığını iddia edebilirsiniz .... ama bu forumun iletişim formatının ötesine geçeceğiz, bu yüzden sabotaj hakkında konuşmaya değmez - onu verir ve eksik olanı kullanırız, terminalin performansı yeterli olduğu için kendimiz yazarız

bunun gibi bir şey

iyi, en azından sözdiziminde mantık sıklıkla aranmaz)))) Zaman dilimleri durumunda performanstaki mantık görünür, ancak yanılıyor olabilirim)

 
Igor Makanu :

Petka: Mantık nedir, Vasiliy İvanoviç?

Başka bir seçenek duydum:

Anka ringa balığı yer mi? Yani su içiyor...

Mantıklı sonuç, o zaman ... mümkündür.

 
Vadim Lin :



AMA, ya Teklif herhangi bir nedenle çizgiyi atlarsa ve çizginin fiyatına eşit değilse , o zaman ne? - bir şey eylem ... Ancak bu durumda, "izin verilen" bir kavşak sağlamayı unutmayın, çünkü eğer piyasa büyük bir Boşluk ile açılır veya sadece büyük bir fiyat sıçraması meydana gelir, o zaman bir çok satırda bir baskınla açılır ve muhtemelen istediğiniz yerde olmaz. Kesişmenin izin verilen değerden büyük olmasına izin verin - yalnızca bir mesaj görüntülenir, ..

Yardımın için teşekkürler, çizgiler manuel olarak ayarlandığında ve bu çizgiler kesiştiğinde işlem gerçekleşiyor ancak EA nedense gösterge çizgilerini görmüyor ve belirttiğim eylemi gerçekleştirmiyor. Göstergenin tüm satırlarının adlarında aşağıdaki @Line ifadesi vardır (artı değişen "hafta-4" numaralandırması) - bu bir şekilde kullanılabilir mi?

 //+------------------------------------------------------------------+
void OnTick ()
  {
//---
         iCustom ( Symbol (), 0 , "ITS-Level Gun" , 0 , 0 );  
 
         for ( int i = ObjectsTotal () - 1 ; i >= 0 ; i--) {

// все что не горизонтальные линии - игнорируем

         if (ObjectType( ObjectName (i)) != OBJ_HLINE ) continue ; 

         double PriceLine = NormalizeDouble (ObjectGet( ObjectName (i), OBJPROP_PRICE1), Digits ());
        
// измените условие Bid == PriceLine
        
             if (Bid == PriceLine)
             {
  { OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 ,Bid- 15 * Point ,Bid+ 15 * Point );}
        } 
  
  }
  }
//+------------------------------------------------------------------+
Dosyalar:
 
Yanlış yazım: satırların adı değişmez, ancak hepsinin adında @Line ortak ifadesi vardır.
 
Fib0 RU :
Yanlış yazım: satırların adı değişmez, ancak hepsinin adında @Line ortak ifadesi vardır.
 if (Bid == PriceLine)

gitmeyecek

okuman

Особенности работы с числами типа double в MQL4
Особенности работы с числами типа double в MQL4
  • www.mql5.com
При программировании на языке MQL4 у новичков порой возникают ситуации, когда результаты некоторых математических вычислений отличаются от ожидаемых. При этом программа компилируется и работает, но не так, как нужно. Они начинают разбираться в программе, находят новые "ошибки" в языке, реализации функций и т.п. В большинстве случаев последующий...
Neden: