Yeni başlayanlardan sorular MQL4 MT4 MetaTrader 4 - sayfa 220

 
Hey! Çocuklar, bana yardım edin! Aklıma fonksiyon gelmiyor. EA günde bir pozisyon açar (00:00 ile 23:59 arasında), yani bir günlük bir sipariş. Görev --> bir dizi sürekli kayıpları bulmak ve bunu günlükte görüntülemek (Print() komutu aracılığıyla bir kez görüntülemek). Dizideki eleman sayısı klavyeden girilir (Örneğin klavyeden 5 değeri girilmişse ve seri 4 adet kârsız günden oluşuyorsa yok sayarız --> 5 gün veya daha fazla gelmesini bekleriz ). Karsız günler art arda giderse veya siparişler aynı gün kapatılırsa (günde bir kez açılırlar ve zaten pazardakiler bir günden fazla "askıda kalabilir") bir seri olarak kabul edilir. Günlükte (örneğin) "bu günlerde seri kaybetme: 01.05, 02.05, 03.05, 04.05, 05.05" görüntülenmelidir. Önemli bir koşul: klavyeden (harici) girilen değerden büyük veya bu değere eşit bir diziyi tanıyın (ve buna göre günlüğe çıktısını alın).
//
Kişisel fikrim şu şekilde:
1. Fiya, Kaybedilen emir dizisini kapanış değerleri ile doldurur ( Mass[i] = OrderCloseTime();). Yani, dizide yalnızca kârlı olmayan siparişlerin kapanış tarihleri ve saatleri saklanır.
2. i konumundaki ve i-1 konumundaki (2 bitişik) elemanı karşılaştırmaya başlıyoruz
2.1 hücre verilerini yılın gün sayısına dönüştürerek karşılaştırın ( TimeDayOfYear(Mass[i]) ve TimeDayOfYear(Mass[i-1])
2.2, böyle bir karşılaştırma, kârsız günlerin birbiri ardına geçip geçmediğini öğrenmenizi sağlar (İlk kârsız günün = 178 ve öncekinin = 176 olduğunu varsayalım -> seri yok, çünkü günler arka arkaya gitmiyor , sırasıyla birincisi = 178 ve ikincisi 177 --> serisi ise)
2.3 For döngüsü boyunca, dizinin tüm hücrelerini inceliyoruz ve komşu olanları karşılaştırıyoruz. Komşuda bir dizi kayıp varsa   dizi elemanları   --> 1'e kadar sürmeye başlıyoruz gerekli minimuma ulaşıyoruz   bir seri olarak sayılacak kârsız günlerin sayısı. 2. (1. madde karşılanırsa) seri sona erene kadar.
2.4 SERİSİ SONLANDIRIR --> dizi öğesinin bittiği yerde dizinini hatırlayın ve dizideki öğelerin sayısını hatırlayın (seri == VEYA klavyeden girilen değerden daha fazla olabilir)
3. ---Uygulama sorununun başladığı yer burası---
3.1 Her bir öğenin tarihini tanırken, bir dizi kârsız gün için bir şekilde "geri adım atmak" gerekir, bu tarihi datetime --> string'den çevirin,
3.11 buna dayanarak, bir dize doldurun (Bilmiyorum, belki bir şekilde StringAdd() aracılığıyla?), Ve onu LOG dosyasına çıkarın (milyon kez değil, yalnızca bir kez)

Danışmanın algoritması bir rol oynamaz, özel işlevin kendisi önemlidir

Tanrı aşkına yardım et!
Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Переменные должны быть объявлены перед их использованием. Для идентификации переменных используются уникальные имена. Описания переменных используются для их определения и объявления типов. Описание не является оператором. Индексом массива может быть только целое число. Допускаются не более чем четырехмерные массивы. Нумерация элементов массива...
Dosyalar:
 
Merhaba. Sinyale abone oldum . Ancak birkaç gün sonra, birkaç yüzden oluşan toplam artışın yüzdesi sadece %58 idi. Önceki aylara olan ilgi mavi rengini kaybederek griye döndü. Bu neden oluyor? Nedeni ne olabilir?
Dosyalar:
 
Maestro8 :
Merhaba. Sinyale abone oldum . Ancak birkaç gün sonra, birkaç yüzden oluşan toplam artışın yüzdesi sadece %58 idi. Önceki aylara olan ilgi mavi rengini kaybederek griye döndü. Bu neden oluyor? Nedeni ne olabilir?

Başka bir para yatırma sağlayıcısına abone oldunuz. 76. ticaretin solundaki grafikteki dikey çizgiyi görüyor musunuz? Bu satır, izlemeye bağlantı anını gösterir. İzlemeye bağlanmadan önce, bu hesap, bu kadar güzel bir resme sahip olmayan birkaç düzine kişiden "çekildi" (güvenli bir şekilde birleştirildiler). Güzel göstergelere sahip bir depozito izlemeye bağlanır ve güzel resimleri seven yeni başlayanlardan para alır. Bu nedenle, izlemeye bağlanmadan önce elde edilen göstergelere güvenmeyin.

 

Sınıf örneğinin bir kopyası.

Böyle bir atama yaparsam:

Cl1 = Cl2;

daha sonra Cl1, Cl2'deki bir sonraki değişiklikle birlikte de değişir.

Yani, açıkçası, sadece bir referans atanır.

Ve atama sırasında kendisine verilen tüm özellikleri saklayacak bir sınıfın örneğini kaydetmem gerekiyor.

Nasıl yapılır?

 
Evgeny Potapov :

Sınıf örneğinin bir kopyası.

Böyle bir atama yaparsam:

daha sonra Cl1, Cl2'deki bir sonraki değişiklikle birlikte de değişir.

Yani, açıkçası, sadece bir referans atanır.

Ve atama sırasında kendisine verilen tüm özellikleri saklayacak bir sınıfın örneğini kaydetmem gerekiyor.

Nasıl yapılır?

Muhtemelen bunu yapıyorsun:

CClass* cl1= new CClass;
CClass* cl2=cl1;

ve buna ihtiyacın var

CClass cl1;
CClass* _cl1= new CClass;
CClass cl2=cl1;
CClass _cl2=_cl1;
CClass* cl3= new CClass(cl1);
CClass* cl4= new CClass(_cl1);

Bir kopya oluşturucuya ihtiyacınız var:

 class CClass{
public :
   CClass(){}
   CClass(CClass &mOther){ this =mOther;}
};
 
Vladimir Simakov :

Bir kopya oluşturucuya ihtiyacınız var:

Teşekkür ederim!

Deneyeceğim ama nasıl olduğu belli değil.

Kopyayı, kopyalanan sınıfa bir referans iletirse, fark nedir?

İkisi tekrar birbirine atıfta bulunacak mı?

 
Evgeny Potapov :

Teşekkür ederim!

Deneyeceğim ama nasıl olduğu belli değil.

Kopyayı, kopyalanan sınıfa bir referans iletirse, fark nedir?

İkisi tekrar birbirine atıfta bulunacak mı?

olmaz. Bu yeni bir nesne. Ve yapıcıda alanları doldurmanız yeterlidir. Ayrıca kendi incelikleri vardır, bu yüzden - kemirmek) Yerel yardımda bununla ilgili hiçbir şey yok (yanlış olsam da), bu yüzden her şeyin C++'da nasıl yapıldığını okuyun ve yerel gerçekler için düzeltmeler yapın. İyi şanlar)

 
Vladimir Simakov :

olmaz. Bu yeni bir nesne. Ve yapıcıda alanları doldurmanız yeterlidir. Ayrıca kendi incelikleri vardır, bu yüzden - kemirmek) Yerel yardımda bununla ilgili hiçbir şey yok (yanlış olsam da), bu yüzden her şeyin C++'da nasıl yapıldığını okuyun ve yerel gerçekler için düzeltmeler yapın. İyi şanlar)

Evet, böyle çalışır.

Teşekkür ederim!

Yazarlardan nasıl çalıştığını bilmek ilginç olurdu:

{ this =mOther;}

Bir referansın iletilmesini beklerken neden değere göre geçiyor?

Neyse ki, böyle bir kopya oluşturucu mümkün!

 

Tünaydın!

Söyleyin lütfen, neden giriş noktasından pozisyona MT4 var, fare ile alma ve durdurma kaybını ayarlayamıyorum?

Belki bir şeyin yapılandırılması gerekiyor, ama ne olduğunu anlamıyorum, lütfen yardım edin

 
from_Reva :

Tünaydın!

Söyleyin lütfen, neden giriş noktasından pozisyona MT4 var, fare ile alma ve durdurma kaybını ayarlayamıyorum?

Belki bir şeyi yapılandırmam gerekiyor, ama ne olduğunu anlamıyorum, lütfen yardım edin

Klavyenizde "Alt" tuşunu basılı tutup sürüklemeyi deneyin