MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1207
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
bu döngü neden bitmiyor ... (döngünün sonsuz olduğunu fark ettiğimde i < 2000 için ikinci koşulu ekledim) MQL4
cv * tvp * ( double )stop < ml
bu döngü neden bitmiyor... (döngünün sonsuz olduğunu fark ettiğimde i < 2000 için ikinci koşulu ekledim)
Döngü sona ermeyecek
cv * tvp * ( double )stop < ml
Ve bu koşul sağlandığında döngünün bitmesi için döngünün gövdesine şu şekilde yazabilirsiniz:
veya
MQL4'te yalnızca şu şekilde:
Sonuç:
Bir kez daha yardımın için teşekkür ederim. Aşağıdakileri nasıl yapacağımı söylerseniz çok minnettar olurum...
Bu dizi öğesinin sıralamadan ÖNCE sahip olduğu bir dizi öğesinin dizin değerini hesaplamak için hangi işlev veya dil yapısı kullanılabilir?
Burada sıralamadan önce (üst sıra) bir A[] dizisine ve sıralamadan sonra aynı diziye sahibim. 5 değerine sahip dizi öğesi, sıralamadan önce dizin 9'daydı
Sıralamadan sonra, 5 değerine sahip dizi öğesi zaten 3 dizinindedir.
Ayrıca, işlev aracılığıyla, sıralanmış dizide 5 değerine sahip hücreyi buluyorum ve işlev, W'de bu hücrenin sıralanmış dizideki dizin numarasını, yani 3'ü saklar.
ArraySort(A,10,0,MODE_ASCEND);
W = ArrayBsearch(A,5,WHOLE_ARRAY,0,MODE_ASCEND);
SORU. ArrayBsearch() işlevinden sonra, sıralanmamış bir dizide sahip olduğu 5 değerine sahip hücre indeks değeri bir değişkende nasıl saklanabilir?
Yani, 9 değerini koruyun.
Yardım için teşekkürler.
Alexey Viktorov
Michael Matkovskij
Teşekkür ederim!
Merhaba. Özel bir göstergede negatif bir değerin nasıl ayarlanacağını ve çalışmasını kim bilebilir? onlar. "Fiyat tablosuna göre gösterge kayması."
Örnek: Hareketli Ortalama göstergesinde -4 değerini ayarlarsanız, tabloya göre sola kayar - ve çalışır.
Ancak gösterge koduna böyle bir değer koyarsanız, gösterge çalışmayı durdurur. ve tüm TF'lerin değerlerini kırmızı ile gösterir.
Bir kez daha yardımın için teşekkür ederim. Aşağıdakileri nasıl yapacağımı söylerseniz çok minnettar olurum...
Bu dizi öğesinin sıralamadan ÖNCE sahip olduğu bir dizi öğesinin dizin değerini hesaplamak için hangi işlev veya dil yapısı kullanılabilir?
Burada sıralamadan önce (üst sıra) bir A[] dizisine ve sıralamadan sonra aynı diziye sahibim. 5 değerine sahip dizi öğesi, sıralamadan önce dizin 9'daydı
Sıralamadan sonra, 5 değerine sahip dizi öğesi zaten 3 dizinindedir.
Ayrıca, işlev aracılığıyla, sıralanmış dizide 5 değerine sahip hücreyi buluyorum ve işlev, W'de bu hücrenin sıralanmış dizideki dizin numarasını, yani 3'ü saklar.
ArraySort(A,10,0,MODE_ASCEND);
W = ArrayBsearch(A,5,WHOLE_ARRAY,0,MODE_ASCEND);
SORU. ArrayBsearch() işlevinden sonra, sıralanmamış bir dizide sahip olduğu 5 değerine sahip hücre indeks değeri bir değişkende nasıl saklanabilir?
Yani, 9 değerini koruyun.
Yardım için teşekkürler.
ancak küresel bir hedef olmadan verileri nasıl vurursa vursun ve bunun gibi sıralamanız gerekmez.
mevcut projeden: (kısa) bir dizi alıyoruz, çıktıda öğelerin dizinlerini istenen sırada alıyoruz:
{
for(int i=0;i<5;i++)
index[i]=i;
for(int i=0;i<4;i++) {
for(int j=1;j<5;j++) {
if (data[index[i]]>data[index[j]]) {
int tmp=index[i];
index[i]=index[j];
index[j]=tmp;
}
}
}
}
daha büyük diziler için, sıralama algoritmasını değiştirmeniz gerekir (büyük olanlar için balon yuvarlanmaz) - değiştirin.
ana mesaj - peki, orijinal verilere dokunmayın. Referanslarla veya daha iyisi dizi indeksleriyle çalışın. Aksi takdirde, daha sonra çok gerekli olacak olan bilgiler kaybolur.
Bir kez daha yardımın için teşekkür ederim. Aşağıdakileri nasıl yapacağımı söylerseniz çok minnettar olurum...
Bu dizi öğesinin sıralamadan ÖNCE sahip olduğu bir dizi öğesinin dizin değerini hesaplamak için hangi işlev veya dil yapısı kullanılabilir?
Burada sıralamadan önce (üst sıra) bir A[] dizisine ve sıralamadan sonra aynı diziye sahibim. 5 değerine sahip dizi öğesi, sıralamadan önce dizin 9'daydı
Sıralamadan sonra, 5 değerine sahip dizi öğesi zaten 3 dizinindedir.
Ayrıca, işlev aracılığıyla, sıralanmış dizide 5 değerine sahip hücreyi buluyorum ve işlev, W'de bu hücrenin sıralanmış dizideki dizin numarasını, yani 3'ü saklar.
ArraySort(A,10,0,MODE_ASCEND);
W = ArrayBsearch(A,5,WHOLE_ARRAY,0,MODE_ASCEND);
SORU. ArrayBsearch() işlevinden sonra, sıralanmamış bir dizide sahip olduğu 5 değerine sahip hücre indeks değeri bir değişkende nasıl saklanabilir?
Yani, 9 değerini koruyun.
Yardım için teşekkürler.
Bunu yapmak için iki soruyu cevaplamanız gerekir. Aşağıdaki durumlarda ne yapacaksınız:
1. Dizinin farklı hücrelerinde 5'in birkaç değeri olacaktır.
2. 5 değeri dizide olmayacak.
ArrayBsearch işlevi (sıralanmış veriler için) ilk durumda hücre değerinin 5 olduğu yerde karşısına çıkan ilk indeksi vereceğinden, ikinci durumda 5 değerine yakın bir eleman verecektir. sıralanmamış bir diziyle başa çıkmak benim için net değil.
Merhaba. Özel bir göstergede negatif bir değerin nasıl ayarlanacağını ve çalışmasını kim bilebilir? onlar. "Fiyat tablosuna göre gösterge kayması."
Örnek: Hareketli Ortalama göstergesinde -4 değerini ayarlarsanız, tabloya göre sola kayar - ve çalışır.
Ancak gösterge koduna böyle bir değer koyarsanız, gösterge çalışmayı durdurur. ve tüm TF'lerin değerlerini kırmızı ile gösterir.
SetIndexShift .
Ayrıca iMA'da kayma belirtilir:
iMA
İadeler anlam teknik gösterge Hareketli Ortalama.
çift iMA (
sicim sembol , // sembol adı
int zaman aralığı , // zaman aralığı
int ma_period , // nokta
int ma_shift , // ortalamanın kayması
int ma_method , // ortalama alma yöntemi
int application_price , // fiyat türü
int vardiya // vardiya
);
Seçenekler
semboller
[içinde] Göstergenin hesaplanacağı cihazın sembolik adı. BOŞ geçerli karakter anlamına gelir.
zaman aralığı
[Dönem içinde. enum değerlerinden biri olabilir ENUM_TIMEFRAMES . 0, mevcut grafiğin periyodu anlamına gelir.
ana_dönem
[içinde] Göstergeyi hesaplamak için ortalama süre.
ma_shift
[içinde] Fiyat grafiğine göre gösterge kayması.
ma_yöntemi
[içinde] Ortalama alma yöntemi. enum değerlerinden herhangi biri olabilir ENUM_MA_METHOD .
uygulanan_fiyat
[içinde] Kullanılan fiyat. enum değerlerinden biri olabilir ENUM_APPLIED_PRICE .
vardiya
[içinde] Gösterge arabelleğinden alınan değerin dizini (geçerli çubuğa göre belirtilen dönem sayısı kadar önce kaydırma).
Geri dönüş değeri
Anlam teknik gösterge Hareketli Ortalama.
Misal:
AlligatorJawsBuffer[i]= iMA ( NULL ,0,13,8, MODE_SMMA , PRICE_MEDIAN ,i);
https://docs.mql4.com/en/indicators/ima
Ve işte hazır bir örnek, ancak MQL5'te: https://www.mql5.com/ru/docs/indicators/ima ,
MQL4'e çevirmek kolaydır.
Ayarlarda shift göstergesi yok. Kodu girdim ve kodda vardiyayı -4'e ayarladım ve gösterge çalışmayı durdurdu - tüm TF'lerin kırmızı olduğunu gösteriyor. Burada oturuyorum ve nedenini düşünüyorum.
Bunu yapmak için iki soruyu cevaplamanız gerekir. Aşağıdaki durumlarda ne yapacaksınız:
1. Dizinin farklı hücrelerinde 5'in birkaç değeri olacaktır.
2. 5 değeri dizide olmayacak.
ArrayBsearch işlevi (sıralanmış veriler için) ilk durumda hücre değerinin 5 olduğu yerde karşısına çıkan ilk indeksi vereceğinden, ikinci durumda 5 değerine yakın bir eleman verecektir. sıralanmamış bir diziyle başa çıkmak benim için net değil.
Hızlı yanıt için çok teşekkürler. Benim durumumda, bir dizi öğesinin her değeri benzersizdir ve tek bir örnekte bulunur. Yani diğer değerler gibi 5 değeri tekrarlanmaz.
Benim durumumda, 5 değeri sıralanmamış bir dizide olmayabilir. Yani, sıralanmamış bir dizide bazı hücreler doldurulamayabilir.
Fakat sıralanmamış dizide 5 değeri yoksa o zaman ArrayBsearch() fonksiyonunda ikinci parametre olarak 5 değerini belirtemeyeceğim.Sadece sıralanmamış dizide olması gereken değerler bu fonksiyona giriyor.
yardım için teşekkürler