Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 318

 
barabashkakvn :

Ben de burada buldum:

Denemek gerek.

Teşekkürler, yer işareti koymalıyım

Bitmiş animasyonu (gif formatında) grafiğe aktarmak mümkün mü, yoksa ilerleme daha da ilerledi mi ve basit bir çözüm var mı?

 
pako :

MQL5 kullanarak bir ticaret olayını seslendirmek için Alert() ve PlaySound() işlevlerini kullanabilirsiniz . Alert() işlevini kullanırsanız , aynı ses her zaman çalınacak ve bir mesaj kutusu açılacaktır.

Danışmanlar için olayları seslendirme konusunda ilginç bir fikir!

belki bu sesi MT4 için yapabilirler?

(MT4'te) şu olayı seslendirmeye çalışıyorum: "SL veya TP ile bir siparişi kapatma"

bunu "basit" bir şekilde yapmanın bir yolu yoktur.

(veya tüm başlangıç koşullarını bir diziye "koymanız" mı gerekiyor ...??? ... nasıl doğru şekilde yapılır?)

Bu ses sorunuyla karşılaşan var mı?

 
mobility-energy :

...

Bu ses sorunuyla karşılaşan var mı?

Bu makaledeki örneklere bakın: MQL5 Tarifleri - MetaTrader 5'te Ses Alım Satım Etkinlikleri

SoundNotification () işlevi.

 

tol64 :


Bu makaledeki örneklere bakın: MQL5 Tarifleri - MetaTrader 5'te Ses Alım Satım Etkinlikleri

SoundNotification () işlevi.

yorum için teşekkürler

daha önce (dikkatle) baktım, tam olarak ihtiyacınız olan şey bu (!!!), ancak MT5 sürümü ve seçeneği.

Ah, sadece MT4 için benzer bir seçeneğe (sesler) ihtiyacım var (MT4 için Tarif),

çünkü MT5 işlevi, MT4'ten daha geniştir ve işlevler farklı şekilde açıklanıp uygulanır ve 1:1 uygulanamaz/kullanılamaz..

şu ana kadar SL (TP) tarafından bir siparişi (yani) kapatırken MT4 kodunda nasıl ses çıkarılacağını çözemiyorum.

açılış / kapanış emirleriyle ilgili genel noktalar (ses) her şeye zaten karar verildi / yapıldı.

ancak, bu koşullara göre, SL (TP), yürütme için koşulları ve işlevleri doğru şekilde yerleştiremez.

n.p. sipariş açıldı, değiştirildi, tamam!

ayrıca sipariş kâr koşullarında kapatılırsa, tamam! kapanır ve ses çıkarır.

ve ipotekli SL(TP) çalışırsa, sipariş değiştirildikten sonra hiçbir şey "seslendirilmez", yani. yani terminal "sessizce" emri kapatır.

basit bir gösterge (siparişler arasında sıralama ve if () gibi) yardımcı olmuyor veya yanlış belirtiyorum.

muhtemelen, tüm siparişleri bir diziye "koymanız" ve bir koşul belirlemeniz gerekir (kontrol edin, bir diziden seçin),

ve sonra SL(TP ) koşulları karşılandığında, "ses" ... Peki, bunu kodda nasıl doğru bir şekilde açıklayabilirim?

puanlama etkinlikleri için bazı "Kimov" seçeneklerini izledi (denedi),

n.p. bekleyen emirleri tetiklemek ve bu olayı dile getirmek (koşullar + dizi) her şey güzel çalışıyor,

ama benzer şekilde, SL (TP) için çalışmıyor (daha doğrusu, bir şeyi yanlış belirtiyorum/kullanıyorum) bu yüzden burada sordum, belki birisinin kodda kanıtlanmış ve zaten belirli bir çözümü var mı?

Bunu fazla karmaşık hale getirmek istemiyorum.

sonuçta, bu (ses) ticarette ana nokta değildir, ancak yardımcı bir sinyalleme cihazı (olayların ses eşliğinde) olarak gereklidir .

================================

Çözümü buldum, her şey yolunda gitti, tartışma için hepinize teşekkür ederim.

soru kapanmıştır.


================================

 

Sevgili forum kullanıcıları!

Tek boyutlu bir diziyi sıralamaya çalışıyorum. Dizi 150 elemanlı statik olarak bildirilir.Önce ArraySort() denendi. Sınırların dışına çıktı. En basit sıralamayı kendim yazdım (aşağıdaki kod).

Dizi öğelerinin ve dizinlerin değerleri de dahil olmak üzere elimden gelen her şeyi yazdırdım. Sonuç aynı. Çıktı, dizinin ötesine geçen dizinleri göstermiyor.

Ne yanlış olabilir?

Şimdiden teşekkürler

e2718

 for (i= 0 ;i<n;i++) ag[i]= pow (o[i]*h[i]*l[i]*c[i], 0.25 ); //Создание массива

Print ( "ag0=" ,ag[ 0 ], " ag1=" ,ag[ 1 ], " ag2=" ,ag[ 2 ], " ag3=" ,ag[ 3 ], " ag4=" ,ag[ 4 ], " ag5=" ,ag[ 5 ]); //Печать значений проходит

for (i= 1 ;i<=n;) //Начало сортировки методом вставки
 {
 Print ( "i=" ,i); 
  w=ag[i]; j=i- 1 ;
   Print ( "j=" ,j); 
   while ((w<ag[j]&&(j>= 0 )))
   {
    ag[j+ 1 ]=ag[j];j=j- 1 ;
   }
  ag[j+ 1 ]=w; 
 } 
//if(!ArraySort(ag))return;//Стандартная сортировка

Her iki durumda da sonuç:
2014.11.23 20:16:30 çekirdek 1 2014.11.21 00:00:30 dizi 'EHHT.mq5' içinde aralık dışında (145,14)
2014.11.23 20:16:30 çekirdek 1 2014.11.21 00:00:30 j=0
2014.11.23 20:16:30 çekirdek 1 2014.11.21 00:00:30 i=1
2014.11.23 20:16:30 çekirdek 1 2014.11.21 00:00:30 ag0=1.254399984056122 ag1=1.254224993272838 ag2=1.254024991029702 ag3=1.254024993271765 ag4=1.254 ag5=0.0
2014.11.23 20:16:30 çekirdek 1 2014.11.21 00:00:30 t5=1970.01.01 00:00:00o1=0.0 h1=0.0 l1=0.0 c1=0.0
2014.11.23 20:16:30 çekirdek 1 2014.11.21 00:00:30 t4=2014.11.21 00:00:00o1=1.254 h1=1.254 l1=1.254 c1=1.254

Soru: Sorun ne? Dizinin çıktısı nerede?

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
e2718 :


Kodu şu şekilde eklemek daha iyidir: Kodu foruma doğru şekilde yerleştirin

Hangi satırda 145 numarası var?

Ve işte durum:

 for (i= 1 ;i<=n;) //Начало сортировки методом вставки

olması gerektiği gibi görünüyor:

 for (i= 1 ;i<n;) //Начало сортировки методом вставки
 

Tünaydın!

Söylesene lütfen, ticaret terminalinin TERMİNALLER penceresinin (Ctrl + T) VARLIKLAR sekmesini nasıl değerlendirebilirim?

Tamamen görsel...

 
e2718 :

Sevgili forum kullanıcıları!

1B diziyi sıralamaya çalışıyorum ...

Bir bisiklet icat etmeyin. Standart kitaplığı , yani CArray... grubunun sınıflarını (CArrayObj, CArrayInt, vb.) kullanın. Burada, sıralama mümkün olduğunca hızlı ve verimli bir şekilde yapılır. Bu dizileri herhangi bir kritere göre sıralayabilirsiniz.
 
e2718 :

Sevgili forum kullanıcıları!

Tek boyutlu bir diziyi sıralamaya çalışıyorum. Dizi 150 elemanlı statik olarak bildirilir.Önce ArraySort() denendi. Sınırların dışına çıktı. En basit sıralamayı kendim yazdım (aşağıdaki kod).

Dizi öğelerinin ve dizinlerin değerleri de dahil olmak üzere elimden gelen her şeyi yazdırdım. Sonuç aynı. Çıktı, dizinin ötesine geçen dizinleri göstermiyor.

Ne yanlış olabilir?

Şimdiden teşekkürler

e2718


Her iki durumda da sonuç:
2014.11.23 20:16:30 çekirdek 1 2014.11.21 00:00:30 dizi 'EHHT.mq5' içinde aralık dışında (145,14)
2014.11.23 20:16:30 çekirdek 1 2014.11.21 00:00:30 j=0
2014.11.23 20:16:30 çekirdek 1 2014.11.21 00:00:30 i=1
2014.11.23 20:16:30 çekirdek 1 2014.11.21 00:00:30 ag0=1.254399984056122 ag1=1.254224993272838 ag2=1.254024991029702 ag3=1.254024993271765 ag4=1.254 ag5=0.0
2014.11.23 20:16:30 çekirdek 1 2014.11.21 00:00:30 t5=1970.01.01 00:00:00o1=0.0 h1=0.0 l1=0.0 c1=0.0
2014.11.23 20:16:30 çekirdek 1 2014.11.21 00:00:30 t4=2014.11.21 00:00:00o1=1.254 h1=1.254 l1=1.254 c1=1.254

Soru: Sorun ne? Dizinin çıktısı nerede?

Kod yapıştırma bilimi için teşekkür ederiz! Kendim düşünmedim. Satır 145, while döngüsünün bulunduğu satırdır. ag dizisine ilk erişimdir. Zaten ilk itiraz çatışmaya yol açar. Döngünün üst sınırı ile ilgili açıklama bunu etkilemez. Ayrıca, standart ArraySort(ag) çağırmak neden aynı sonucu versin?


 
e2718 :

Hatanın nerede olduğunu anlamak için yalnızca bu kod bölümüne değil, aynı zamanda değişkenlerin bildirimine de ihtiyacınız var. Sadece orada ne ilan ettiğinizi tahmin etmek için kalır.

Ve işte başka bir bağlantı: Forum: yanıtlarken imleç bir alıntıya atlıyor