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

 
-Aleks- :
İki yıl - test cihazında :) Eh, bir yıl demo üzerinde çalışıyor ... harici sınıflar nedeniyle katı kurallar eklemek zorunda kaldığım birçok kural var ... ve işte yapmadığım bir kural. Artık nasıl düzenleneceğini bilmiyorum - Şimdiye kadar sıralamadaki dizinin boyutunu artıracağım. Grafik arabelleğine gelince neden otomatik boyutlandırma yok veya var mı?

Böyle deneyin.

OrderBU [1] dizisini başlatıyoruz.

Önce dizi boyutunu artırın ( ArrayResize(OrderBU,NorderBU+1) ), ardından OrderBU[NorderBU]=OrderTicket();NorderBU++;

 
new-rena :

Böyle deneyin.

OrderBU [1] dizisini başlatıyoruz.

Önce dizi boyutunu artırın ( ArrayResize(OrderBU,NorderBU+1) ), ardından OrderBU[NorderBU]=OrderTicket();NorderBU++;

Teşekkürler - Boş zamanımda deneyeceğim.
 
Lütfen bana kodda böyle bir şeyin nasıl uygulanacağını söyleyin.
Bir temel değişken A vardır, sıfırdan küçükse, beş değişken daha kullanırız - değer, gösterge çağrı işlevinden atanır - iCustom.
Değerleri aldıktan sonra sıralanmaları gerekir - A değişkeninden daha fazla ve daha az değerleri bulun ve iki gruptan belirleyin - maksimum, minimum, ortalama değer.
Bir dizi kullanmanın gerekli olduğunu düşünüyorum, ancak nasıl olduğunu tam olarak anlamıyorum.
 

Lütfen bana bu anı anlat.

Örneğin, grafikte Williams Percent Range(%R) göstergesine sahibiz ve On Balance Volume(OBV) göstergesini gezginden penceresine sürükleriz.

https://charts.mql5.com/8/675/xauusd-h4-metaquotes-software-corp.png

%R - %0 - --100 aralığında çalışır, OBV - spesifik bağlama yok.

OBV %R penceresindeyken görsel olarak -20 veya -80'i geçtiğini görüyoruz.

OBV'nin -%20'nin üzerinde veya -%80'in altında olduğu EA'da nasıl elde edilir.

OBV'yi özel bir göstergede 0 - -100% aralığına nasıl bağlarım? Bunu normalleştirin (aralık)? Nasıl yapılır?

OBV'yi %R olarak normalleştirmek, anladığım kadarıyla gerekli değil (resim farklı olacaktır).

Belki ilkeldir, ben rastlamadım.

 
-Aleks- :
Lütfen bana kodda böyle bir şeyin nasıl uygulanacağını söyleyin.
Bir temel değişken A vardır, sıfırdan küçükse, beş değişken daha kullanırız - değer, gösterge çağrı işlevinden atanır - iCustom.
Değerleri aldıktan sonra sıralanmaları gerekir - A değişkeninden daha fazla ve daha az değerleri bulun ve iki gruptan belirleyin - maksimum, minimum, ortalama değer.
Bir dizi kullanmanın gerekli olduğunu düşünüyorum, ancak nasıl olduğunu tam olarak anlamıyorum.

if (p1>p2&&p1>p3) , if (p2>p1&&p2>p3) , if (p3>p2&&p3>p1)

bu hoşuma gidiyor,

 

Bir değişken Lot parametresine ihtiyacımız var, ilk lot kullanıcı tarafından belirlenir, sonra artık bu parametreye başvurmayız ve danışman kendi kendine çalışır ve kayıp durumunda lotu programda belirtilen maksimum değere yükseltir (veya harici bir değişken) ve kâr durumunda belirtilen miktarda azaltır.

Parametreyi "Init"e girersem, danışman harici lot değişkenine erişimi durduracak mı?

veya nasıl yapılır?

bu örnek bir ifadedir.

 
Merhaba. Expert Advisor'daki haber verilerini nasıl kullanacağımı söyler misiniz? Bunun için bir göstergeye ihtiyacım var mı yoksa Uzman Danışman önemli haberleri kendi başına bulabilir mi?
 
Leanid Aladzyeu :

if (p1>p2&&p1>p3) , if (p2>p1&&p2>p3) , if (p3>p2&&p3>p1)

bu hoşuma gidiyor,

Bu, özellikle çok sayıda parametreyle uygun değildir ...

Bir dizi aracılığıyla ilginç bir çözüm. Özellikle ilgi çekici olan, toplam değer sayısının ortalaması alınırken bir değişkenin en yakın değerinin nasıl bulunacağıdır.

 
first_may :

İyi akşamlar. Tenkan ve kinjun'un kesiştiği noktada basit bir Uzman Danışman yazmaya çalışıyorum. İşte kod:

geçersiz OnTick()

geçersiz OnTick()

{

TradeSignal_20();

}


int TradeSignal_20()

{

int işaret=0;


if(h_ich==INVALID_HANDLE)

{

h_ich=iIchimoku(Symbol(),Period(),IKHtenkansen,IKHkijunsen,IKHsenkouspanb);

dönüş(0);

}

başka

{

if (CopyBuffer(h_ich,0,0,3,ich1_buffer)<2) return(0); // TENKANSEN_LINE

if (CopyBuffer(h_ich,1,0,3,ich2_buffer)<2) return(0); // KIJUNSEN_LINE

if (!ArraySetAsSeries(ich1_buffer,true)) return(0);

if (!ArraySetAsSeries(ich2_buffer,true)) return(0);

}

//--- koşulu kontrol edin ve sig için değeri ayarlayın

if (ich1_buffer[1]>ich2_buffer[1]) sig=1;

else if(ich1_buffer[1]<ich2_buffer[1]) sig=-1;

başka işaret=0;

if (ich1_buffer[1]>ich2_buffer[1])

if (ich1_buffer[2]<ich2_buffer[2])

Alert(Symbol()+": satın al");

if (ich1_buffer[1]<ich2_buffer[1])

if (ich1_buffer[2]>ich2_buffer[2])

Alert(Symbol()+": satış");

//--- ticaret sinyalini döndür

dönüş(sig);

}

//+------------------------------------------- --------------------+

Uyarının sürekli değil, yalnızca bir kez çağrılması için nasıl yapılır?

Her keneyi değil, gerektiği kadar uzaklaştırın.
 
Vasiliy Smirnov :
Her keneyi değil, gerektiği kadar uzaklaştırın.
Ve nasıl gerekli? Yeni bir bar açarken - ardından yeni bir bar olup olmadığını kontrol edin...