[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 40

 
Noterday :

Açılan pozisyonun lot büyüklüğünü hesaplamak için Expert Advisor'a yeni bir blok ekledim. Anlamı şudur:

1. Stop, Satış pozisyonu ile mevcut günün En Yüksek ve Al pozisyonu ile günün En Düşük üzerine yerleştirilir.

2. Emir açma koşulu tetiklendiğinde partiyi hesaplamak için bu blok yürütülmeye başlar. Günün Yüksek/Düşük mesafesi puan olarak hesaplanır, istenilen lotu bulmak için 0,1'den başlayan partiler arasında dolaşırım (stop tetiklendiğinde %5)

Ancak günlükte aşağıdaki satırlar görünür:

2011.01.30 16:59:47 TestGenerator: eşleşmeyen veri hatası (2011.01.13 14:45'te hacim sınırı 1107 aşıldı)

Bu bloğu kapatır kapatmaz her şey yolunda. nerede hatalıyım? Lütfen bana söyle.

İşte kodun kendisi:

Test eden kişinin mesajının kodunuzla ilgili olması pek olası değildir.

Alıntılar Arşivindeki tüm zaman dilimlerini yeniden hesaplamayı tekrar tekrar deneyin.

Mesaj, 1107. cilde 14:45'te ulaşıldığını söylüyor, çünkü bu tamamen imkansız. Açık artırma saat 24:00'e kadar devam etti.

Ancak, bu hata tamamen ihmal edilebilir.

 
Saltan :

Bir içerme dosyasını (*.mqh) derlemeye çalışırken, '\end_of_program' hatası - tanımlı işlev görünmüyor. Yanlış olan nedir ve nasıl düzeltilir?

dış çift Lot = 0.0;
extern int Yüzde = 0;
harici int StopLoss = 100;
harici int TakeProfit = 40;
harici int TrailngStop = 100;

int Seviye_Yeni;
int Level_Old;


olur - ve bu normaldir. Örneğin, değişkenleri dahil ettiğimde..mqh - uzmanın harici ve global değişkenleri belirtilir... derlerken, '\end_of_program' diyor - tanımlı fonksiyon yok, programda bir son yok gibi bir şey, fonksiyon tanımlanmadı, ancak aynı zamanda EA'nın kendisini derlediğimde her şey yolunda - 0 hata, 0 uyarı. (*.mqh) - Ayrı ayrı derlemeye gerek yoktur, Expert Advisor'ın kendisini derlerken derleyici tüm içeriğini bir araya getirir ve orada hata olup olmadığına, hata olup olmadığına vb. karar verir. :-))) Yani her şey normal. Kendiniz Derlemeyi Deneyin...

not Diğer içermeleri derlerken, derleyici bazı global değişkenlerin tanımlanmadığını yazabilir... Elbette, tamamen farklı bir içerme içinde varsa, tanımlanmamalıdır. İnklüzyonların yerleştirildiği sıraya dikkat ediyorum... Bir değişkende bir değişken tanımlanıp diğerinde kullanılıyorsa, ilk içerme ikinciden önce metne yerleştirilmelidir, aksi takdirde bir derleme hatası alınır - böyle ve böyle bir değişken tanımlanmaz, genel olarak tüm global değişkenler en dıştaki kutuda tanımlanır. Veya alternatif olarak, yalnızca bu değişkenleri kullanırsa, başka herhangi birinde tanımlanabilirler. Bunun gibi bir şey... Kaotik ama açık olmalı. Denemek.

 
DhP :

Test eden kişinin mesajının kodunuzla ilgili olması pek olası değildir.

Alıntılar Arşivindeki tüm zaman dilimlerini yeniden hesaplamayı tekrar tekrar deneyin.

Mesaj, 1107. cilde 14:45'te ulaşıldığını söylüyor, çünkü bu tamamen imkansız. Açık artırma saat 24:00'e kadar devam etti.

Ancak, bu hata tamamen ihmal edilebilir.

Sonuçta, bu bloğu yorumladığımda, test cihazında her şey yolunda. Yani blok yanlış...
 
100yan :
Soru değil... Ama koddaki TF'nin mevcut değeri nasıl belirlenir?

Period() yardımcı olacaktır
 
Sergey_Rogozin :

DERS KİTABI'nın kapağına her taraftan baktım ve hala hiçbir şey anlamadım ...)))

Gördüğüm her yerde şöyle yazıyorlar:

Durakları daha fazla işlemek ve ayarlamak için Fiyat = OrderOpenPrice() almak istersem aşağıdaki yazım doğru mu?

Benim için çalışıyor, ama kabul edilebilir mi?

Çizginiz ilki kadar doğru.

Böylece açık bir sipariş hakkında her türlü bilgiyi alabilirsiniz,

ancak açılış onayı sırasında yalnızca bir kez.

Görmek https://docs.mql4.com/ru/trading/OrderSend

 
Noterday :
Sonuçta, bu bloğu yorumladığımda, test cihazında her şey yolunda. Yani blok yanlış...
     double DistanceToHighDay = MathAbs (HighDay-Ask)* 10000 ;
     double DistanceToLowDay  = MathAbs (Bid-LowDay)* 10000 ;

Büyük olasılıkla, hacim olarak dakikalarla tutarlı olmayan günün verilerine erişiminiz nedeniyle,

ve test cihazı sizi bu konuda uyarır.
 
HighDay ve LowDay değişkenleri sadece bu blokta değil, programda başka yerlerde de kullanılıyor, bu yüzden bence alakası yok. Ve sizce bu bloğun algoritması doğru yazılmış mı?
 

Belki birisi daha iyisini yapabilir?

1. Stop, Satış pozisyonu ile günün en yükseğine yerleştirilir.

2. Ardından, mevcut fiyattan günün En Yüksek fiyatına kadar olan mesafeyi puan cinsinden hesaplayın.

3. Bu mesafenin $ olarak ne kadar olacağını 0.1 lot ile hesaplıyoruz ve mevduatın % olarak ne kadar olacağını hesaplıyoruz. %5'ten az ise, o zaman 0,2 lot vb. sayarız. %5'i geçene kadar.

Ve sonra bu ihtiyaç duyulan parti büyüklüğü olacaktır.

Nedense kodum çalışmıyor... her şey doğru yazılmış gibi görünse de.

 

KİM BİLİR?

Bollinger'e programlı olarak nasıl başvurulur - "Önceki Göstergenin Verileri" için geçerlidir? application_price alanına ne yazılmalıdır?

Teşekkür ederim

 

Hepinize iyi günler. Böyle bir soru: CheckEvents'i çalışmaya zorlamak nasıl? Olaylar dosyası (Komposter tarafından) içerme dizininde bulunur. EventsExpert.mq4'te bir örnek var:

CheckEvents( MagicNumber );

         if ( eventBuyClosed_SL > 0 )
                 Alert ( Symbol (), ": Buy-позиция закрыта по СтопЛоссу!" );

Ama Alert'e ihtiyacım yok. StopLoss ile bir piyasa emrini kapatırken bekleyen emri silmem gerekiyor.

CheckEvents( Magic== 0 );
    
   if (eventBuyClosed_SL > 0 )
   ??????????? 
        
   DELETE( "Buy Stop" );

Uyarı yerine ne reçete edilir? Elbette bu işlev bu görev için uygunsa.