[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 993

 
Aleksander :

Peki, ördek, ekranın solunda göster - temel fark nedir? - Satırın sağ tarafında bir fiyat olacak - Soldaki mesajın metni..

veya bir ışın - ama sonra soldaki her şeyi göster ...


Bu müşteriden bir ricadır :) Solda diğer göstergeler üst üste gelmemesi için kullanılmıştır.

Oh peki, sorunu çözeceğim, katılımınız için hepinize teşekkür ederim!

 
merhaba. Bir sorum var: MT4'te bir EA'yı aynı anda birkaç döviz çifti için optimize etmek mümkün müdür? Ya da belki bunun için özel bir program var? Veya en azından optimizasyonu hızlandırmak için (tam CPU kullanımı için)? ve sonra bilgisayarın kaynakları hala yeterli, ancak artık kullanamıyorum
 
gawrik :
merhaba. Bir sorum var: MT4'te bir EA'yı aynı anda birkaç döviz çifti için optimize etmek mümkün müdür?

Farklı çiftler için bir Uzman Danışmanın optimizasyonlarıyla aynı anda birden fazla MT4 çalıştırmanızı kimse yasaklamıyor.

Biri yasaklarsa, ona izin verdiğimi söyle.

 
Aleksander :

delta ataması yapmak için init'i deneyin

delta = 1; if (rakam = 5) {delta = 10;}

ve metinde ekleyin

if (Teklif <=Düşük&& Sor < Yüksek - 10*Puan*delta)

muhtemelen biraz yanlış ama anlamı açık

delta = nokta; if ( basamak = 5) {delta = 10*Nokta;}

if (Teklif <=Düşük&& Sor < Yüksek - 10*delta) hiçbir fark olmasa da, ama... nasıl bir Japonum?

 

ve dinamik yayılmayla ilgili bir sonraki soru, N keneler için ortalama yayılmayı hesaplamak gerekli hale geldi, işte bu genellikle bir pusu,

Aşağıdakileri çizdim ama doğru olup olmadığından emin değilim:

int TicSpred=100;

çift Yayılım[10000];

if (Spread[0]==0) {ArrayInitialize(Spread,(Ask-Bid)/delta);}

for (int q=TicSpred;q>0;q--){

if (Spread[q]==0) Spread[q]=(Teklif İste)/delta;}

for (q=TicSpred;q>0;q--) {Spread[p]=Spread[p-1];}

Spread[0]=(Teklif Sor)/delta;

çift CountedSpred;

for (q=0;q<bars;q++){CountedSpred=CountedSpred+Spread[p];}

double Аverspread=CountedSpred/TicSpred; ama bunun tamamen doğru olduğundan emin değilim ve görünüşe göre beş basamaklı bir sayıyı saymak doğru olmayacak.

 

evet hayır hiç doğru değil

Her bir sonraki formayı diziye yazmam ve dizideki forma sayısına bölmem gerekiyor ve giriş sayısı N'yi geçer geçmez dizideki ilkini silmem gerekiyor

daha kolay bir şekilde yapılabilir mi?

 

burada başka bir hata var

if (Teklif >=Yüksek ) // Körfezi Kapat

dönüş(11);

if (Teklif <=Düşük && Sor <Yüksek - 1*delta )

dönüş(21); // Satışı Kapat

if (ticaret == 1){

if ( Teklif <=Düşük ) // Bay'i Aç

Yazdır ("Bay=",11);

dönüş(10);}

if (Zaman == 1){

if (Teklif<=Düşük&&Ask<Yüksek -1*delta ) // Srll'yi Aç

Print("Sat=",21);

dönüş(20);}

dönüş; // Zaman iyi değilse, hiçbir şeyi açmıyoruz, sadece çıkıyoruz

Aşağıdaki Yüksek ve Düşük değişkenlerin verileri biliniyor (baskıyı kontrol ettim) ve fiyat koşullarını aşağıdaki gibi gösteriyor:

1. eğer satın al > Yüksek ise komut 10'u gönder (satın alma kapanışı)

2. al < Düşük ve aynı zamanda talep Yüksek'ten 1 puan daha az ise, dönüş 11 komutuyla köyü kapatın.

değişken Zaman == 1 ise:

3. Teklif, Düşük'e eşit veya düşükse ve aynı zamanda Talep, Yüksek'ten en az bir puan düşükse, Satın Al'ı açın

4. Teklif, Yüksek'ten büyük veya ona eşitse, Sat?

ama sadece satın alma her zaman test için açılır, bu programın tamamen ders kitabından olduğunu hatırlatırım, sırasıyla sadece ticaret kriterlerini değiştiriyorum, komutlar 10, 20, her ihtimale karşı, bu fonksiyonların hepsini ekleyeceğim. çağrılıyor

Dosyalar:
close_all.mqh  3 kb
open_ord.mqh  3 kb
trade.mqh  3 kb
 

İnsanlar! Merhaba! Yardım!

Uyarı göstergesi işlevine bir zaman aralığı girmem gerekiyor. Sanki bir sinyal geldiğinde bir pencere açılıyor ve bu sinyalin hangi grafikten olduğunu görüyoruz. Örneğin M15.

Siteyi aradım ama buna benzer bir şey bulamadım.

 

İnsanlar! Merhaba! Yardım!

Uyarı göstergesi işlevine bir zaman aralığı girmem gerekiyor. Sanki bir sinyal geldiğinde bir pencere açılıyor ve bu sinyalin hangi grafikten olduğunu görüyoruz. Örneğin M15.

Siteyi aradım ama buna benzer bir şey bulamadım.

 

aslında fonksiyon bu

//------------------------------------------------ --------------------

// Ölçüt.mqh

// MQL4 eğitiminde örnek olarak kullanılmak üzere tasarlanmıştır.

//------------------------------------------------ --------------- 1 --

// Ticaret kriterlerini hesaplama işlevi.

// Dönüş değerleri:

// 10 - Satın Al'ı aç

// 20 - Satışı aç

// 11 - Satın Al'ı kapat

// 21 - Satışı kapat

// 0 - önemli kriter yok

// -1 - başka bir finansal araç kullanılıyor

//------------------------------------------------ --------------- 2 --

// Dış değişkenler:


//------------------------------------------------ --------------- 3 --

int Kriter() // Özel işlev

{

//------------------------------------------------ ----------------4----

dize Sym="________";

if (Sym!=Symbol()) // Yüzgecimiz değilse. alet

{

bilgilendir(16); // İleti..

return(-1);} // .. ve çık

delta=nokta;

if (Rakamlar == 5 || (Rakamlar == 3 && StringFind (Symbol(), "JPY", 0) != -1))

delta=Nokta *10;

int Digital=MarketInfo(Symbol(),12);

//------------------------------------------------ --------------- 5 --

// Teknik parametreler gösterge:

bool ticareti;

if (Begin>End && (Hour()>Begin-1 || Hour()<End)){trade=1;}

if (Begin<End && (Hour()>Begin-1 && Hour()<End)){trade=1;}

{if (ticaret==0 && mag!=Mag) return(0);}

// --------------------------Ortalama yayılımı hesapla---------- ----

if (!IsTesting() || IsVisualMode() || !IsOptimization())

{

int TicSpred=100;

çift Yayılım[10000];

if (Spread[0]==0) {ArrayInitialize(Spread,(Ask-Bid)/delta);}

for (int q=TicSpred;q>0;q--){

if (Spread[q]==0) Spread[q]=(Teklif İste)/delta;}

for (q=TicSpred;q>0;q--) {Spread[q]=Spread[q-1];}

Spread[0]=(Teklif Sor)/delta;

çift CountedSpred;

for (q=0;q<TicSpred;q++){CountedSpred=CountedSpred+Spread[q];}

double Аverspread=CountedSpred/TicSpred;

}


//------------------------------------------------ --------------- 5 --

// Ticaret kriterlerinin hesaplanması

if (Teklif >=Yüksek ) // Körfezi Kapat

dönüş(11);

if (Teklif<=Düşük)

dönüş(21); // Satışı Kapat

if (ticaret == 1){

if ( Teklif <=Düşük &&Ask<Yüksek -0.5*MyPoint) // Bay'i Aç

Yazdır("Bay=",11);

dönüş(10);}

if (ticaret == 1){

if (Teklif>=Yüksek ) // Srll'yi Aç

Print("Sat=",21);

dönüş(20);}

dönüş; // Zaman iyi değilse, hiçbir şeyi açmıyoruz, sadece çıkıyoruz


//------------------------------------------------ --------------- 6 --

dönüş(0); // Kullanıcıdan çık. fonksiyonlar

}

//------------------------------------------------ --------------- 7 --

Low ve High değişkenlerinin önceden tanımlı olduğu ve doğru olanların sıfıra eşit olduğu varsayılır.

Neden: