Kodu önerildiği gibi yaptım. İlk olarak, koda göre, durma türünü seçmek için bir şartım var - atr veya sabit
Sonra normalleştirmemi yorumladım ve bu şekilde atadım.
Kodun devamında, bir kar hesaplamam var - orada sorun yoktu ve karı hesapladıktan sonra tavsiye edilen korkunç bir formül ekledim
Her şey hatasız derlendi. Ve test başlatıldığında, anladığım kadarıyla sıfıra bölmenin gerçekleştiği günlükte bir hata oluşuyor ve test duruyor. Nerede hata yaptım veya neyi doğru yapmadım?
sadece sil
sl = fabs (OrderOpenPrice()-OrderStopLoss())/ _Point ; // ПРИСВОИЛ ЗНАЧЕНИЕ КАК СОВЕТОВАЛИ//sl= NormalizeDouble(sl,Digits());// НОРМАЛИЗАЦИЯ ЗНАЧЕНИЯ СТОП ЛОССА ДЛЯ ОТКРЫТИЯ СДЕЛКИ ТО ЧТО БЫЛО ЗАКОМЕНТИРОВАЛ
Kodu önerildiği gibi yaptım. İlk olarak, koda göre, durma türünü seçmek için bir şartım var - atr veya sabit
Sonra normalleştirmemi yorumladım ve bu şekilde atadım.
Kodun devamında, bir kar hesaplamam var - orada sorun yoktu ve karı hesapladıktan sonra tavsiye edilen korkunç bir formül ekledim
Her şey hatasız derlendi. Ve test başlatıldığında, anladığım kadarıyla sıfıra bölmenin gerçekleştiği günlükte bir hata oluşuyor ve test duruyor. Nerede hata yaptım veya neyi doğru yapmadım?
Sadece iki farklı seçenek sunulduğunda, ikisini birden uygulamanıza gerek yoktur.
sl= razmer_fikc_sl* Point ; // ПЕЕРМЕННОЙ СТОП ЛОССА ПРИСВАЕВАЕМ ФИКСИРОВАНОНЕ ЗНАЧЕНИЕ ПУНКТОВ И ДОМНОЖАЕМ НА ПОИНТ
fiyat değerlerinde değer elde edin. Ve ... ile ... arasındaki noktalar formüle eklenmelidir.
Durdurmanın fiyata uzak olduğu ortaya çıktı, ya iATR(………)/_Point ya da size_fikc_sl ama fonksiyonda iki farklı değer kullanmak çok uygun değil, bu yüzden tek seçenek bırakmak daha iyi
double lot = MathFloor ((Free*MaxRisk/ 100 )/(sl/ Point *LotVal)/Step)*Step; //СТРАШНАЯ ФОРМУЛА РАСЧЁТА ОБЪЁМА ЛОТА
ve parti büyüklüğünü hesaplamaya çalışmadan ÖNCE sl'nin hesaplanması gerektiğini unutmayın.
voidOnTick ()
{
//---if (tip_sl==en_po_atr)
{ //ЕСЛИ ТИП СТОП ЛОССА СТОИТ ПО АТР ТО ВЫСЧИТЫВАЕМ ЕГО ИЗ АТР
sl= iATR ( NULL ,PeriodForWork_sl,atr_sl_period, 1 )/ Point ; // ПОЛУЧЕНИЕ ЗНАЧЕНИЙ АТР ДЛЯ ВЫСТАВЛЕНИЯ СТОПЛОССАPrint ( "СТОП ПО АТР, ЕГО РАЗМЕР " +sl);
}
else//ИНАЧЕ- ТО ЕСТЬ ЕСЛИ СТОП ЛОСС ФИКСИРОВАННЫЙ В ПУНКТАХ
{
sl= razmer_fikc_sl; // ПЕЕРМЕННОЙ СТОП ЛОССА ПРИСВАЕВАЕМ ФИКСИРОВАНОНЕ ЗНАЧЕНИЕ ПУНКТОВ И ДОМНОЖАЕМ НА ПОИНТPrint ( "СТОП ПО АТР, ЕГО РАЗМЕР " +sl);
}
double lot = MathFloor ((Free*MaxRisk/ 100 )/(sl*LotVal)/Step)*Step; //СТРАШНАЯ ФОРМУЛА РАСЧЁТА ОБЪЁМА ЛОТА
Satırı yorumladım ve test başladı - ÇOK TEŞEKKÜR EDERİZ! iATR'den bir stop loss değişkeni alırken neden sonunda bir noktaya bölündüğünü anlamadım? P/S Gerçekten matematikle ilgili güçlüklerim var - dalga geçmiyorum :-( Ama bence test gittiğinden ve 100 lotluk bir depoyla, minimum lot ayarlandığından ve 10.000'lik bir depoyla her zaman farklıdır , yani norm işe yarıyor O_o Yardımınız için tekrar teşekkürler .. .
Satırı yorumladım ve test başladı - ÇOK TEŞEKKÜR EDERİZ! iATR'den bir stop loss değişkeni alırken neden sonunda bir noktaya bölündüğünü anlamadım? P/S Gerçekten matematikle ilgili güçlüklerim var - dalga geçmiyorum :-( Ama bence test gittiğinden ve 100 lotluk bir depoyla, minimum lot ayarlandığından ve 10.000'lik bir depoyla her zaman farklıdır , yani norm işe yarıyor O_o Yardımınız için tekrar teşekkürler .. .
ATR, 0.00120 gibi bir ondalık sayı verir
size_fikc_sl bir tam sayınız var
lotu hesaplamak için puana ihtiyacınız var, yani. tüm sayılar
Eski konu, ama bir çözüm bulamıyorum. Bir zaman aralığı nasıl belirlenir (örneğin, 12:00 ile 14:00 arası) ve bu aralıkta yalnızca bir kez, bazı koşulları karşılayan bir sipariş açın (örneğin, RSI<30).
Veya
Uykuya benzer bir şey: belirli bir koşula göre bir sipariş açın ve 2 saat boyunca hiçbir şey yapmayın. Ancak Uyku, test cihazında çalışmıyor .
Порт-моне тв : Eski konu, ama bir çözüm bulamıyorum. Bir zaman aralığı nasıl belirlenir (örneğin, 12:00 ile 14:00 arası) ve bu aralıkta yalnızca bir kez, bazı koşulları karşılayan bir sipariş açın (örneğin, RSI<30).
Veya
Uykuya benzer bir şey: belirli bir koşula göre bir sipariş açın ve 2 saat boyunca hiçbir şey yapmayın. Ancak Uyku, test cihazında çalışmıyor .
ilk koşul - zaman geldi ikinci koşul - rsi üçüncü koşul - zaman aralıklarında böyle bir emir açmanın bedelinde tarihte böyle bir emir yok
Elliott Wave Osilatör göstergesi vardır, EWO değişkeninin sayısal değerlerini verir. Sıfırın üzerinde olan pozitif EWO'lar ve sıfırın altında olan negatif EWO'lar vardır.
Son 100 EWO okumasından, pozitif EWO'ların ortalamasını ve ayrıca negatif EWO'ların ortalamasını hesaplayın
İndikatörden değerleri şu şekilde alıyorum double EWO=iCustom(Symbol(),0,"Elliott Wave Oscillator",0,0);
Söyle bana, bunu bir danışmanda uygulamak için hangi mql4 kodu kullanılabilir?
Kodu önerildiği gibi yaptım. İlk olarak, koda göre, durma türünü seçmek için bir şartım var - atr veya sabit
Sonra normalleştirmemi yorumladım ve bu şekilde atadım.
Kodun devamında, bir kar hesaplamam var - orada sorun yoktu ve karı hesapladıktan sonra tavsiye edilen korkunç bir formül ekledim
Her şey hatasız derlendi. Ve test başlatıldığında, anladığım kadarıyla sıfıra bölmenin gerçekleştiği günlükte bir hata oluşuyor ve test duruyor. Nerede hata yaptım veya neyi doğru yapmadım?
sadece sil
Kodu önerildiği gibi yaptım. İlk olarak, koda göre, durma türünü seçmek için bir şartım var - atr veya sabit
Sonra normalleştirmemi yorumladım ve bu şekilde atadım.
Kodun devamında, bir kar hesaplamam var - orada sorun yoktu ve karı hesapladıktan sonra tavsiye edilen korkunç bir formül ekledim
Her şey hatasız derlendi. Ve test başlatıldığında, anladığım kadarıyla sıfıra bölmenin gerçekleştiği günlükte bir hata oluşuyor ve test duruyor. Nerede hata yaptım veya neyi doğru yapmadım?
Sadece iki farklı seçenek sunulduğunda, ikisini birden uygulamanıza gerek yoktur.
sl'yi iki farklı seçenek olarak görüyorsunuz
veya
fiyat değerlerinde değer elde edin. Ve ... ile ... arasındaki noktalar formüle eklenmelidir.
Durdurmanın fiyata uzak olduğu ortaya çıktı, ya iATR(………)/_Point ya da size_fikc_sl ama fonksiyonda iki farklı değer kullanmak çok uygun değil, bu yüzden tek seçenek bırakmak daha iyi
ve parti büyüklüğünü hesaplamaya çalışmadan ÖNCE sl'nin hesaplanması gerektiğini unutmayın.
Bu şekilde yap...
sadece sil
Satırı yorumladım ve test başladı - ÇOK TEŞEKKÜR EDERİZ! iATR'den bir stop loss değişkeni alırken neden sonunda bir noktaya bölündüğünü anlamadım? P/S Gerçekten matematikle ilgili güçlüklerim var - dalga geçmiyorum :-( Ama bence test gittiğinden ve 100 lotluk bir depoyla, minimum lot ayarlandığından ve 10.000'lik bir depoyla her zaman farklıdır , yani norm işe yarıyor O_o Yardımınız için tekrar teşekkürler .. .
Satırı yorumladım ve test başladı - ÇOK TEŞEKKÜR EDERİZ! iATR'den bir stop loss değişkeni alırken neden sonunda bir noktaya bölündüğünü anlamadım? P/S Gerçekten matematikle ilgili güçlüklerim var - dalga geçmiyorum :-( Ama bence test gittiğinden ve 100 lotluk bir depoyla, minimum lot ayarlandığından ve 10.000'lik bir depoyla her zaman farklıdır , yani norm işe yarıyor O_o Yardımınız için tekrar teşekkürler .. .
ATR, 0.00120 gibi bir ondalık sayı verir
size_fikc_sl bir tam sayınız var
lotu hesaplamak için puana ihtiyacınız var, yani. tüm sayılar
ATR/Point bir tamsayı üretir
Eski konu, ama bir çözüm bulamıyorum. Bir zaman aralığı nasıl belirlenir (örneğin, 12:00 ile 14:00 arası) ve bu aralıkta yalnızca bir kez, bazı koşulları karşılayan bir sipariş açın (örneğin, RSI<30).
ilk koşul - zaman geldi
ikinci koşul - rsi
üçüncü koşul - zaman aralıklarında böyle bir emir açmanın bedelinde tarihte böyle bir emir yok
Tünaydın.
Elliott Wave Osilatör göstergesi vardır, EWO değişkeninin sayısal değerlerini verir. Sıfırın üzerinde olan pozitif EWO'lar ve sıfırın altında olan negatif EWO'lar vardır.
Son 100 EWO okumasından, pozitif EWO'ların ortalamasını ve ayrıca negatif EWO'ların ortalamasını hesaplayın
İndikatörden değerleri şu şekilde alıyorum double EWO=iCustom(Symbol(),0,"Elliott Wave Oscillator",0,0);
Söyle bana, bunu bir danışmanda uygulamak için hangi mql4 kodu kullanılabilir?
Ortalama modulo bulmak mümkündü.
çift kullanılabilirlik_EWO = 0;
for(int g=0;g<100;g++)
avarage_EWO = ortalama_EWO + MathAbs ( iCustom(Symbol(),0,"Elliott Dalga Osilatörü",0,g) ); // modulo ortalaması
kullanılabilirlik_EWO = kullanılabilirlik_EWO/100;
Ancak ortalama pozitif ve ortalama negatif EWO'yu ayrı ayrı nasıl hesaplayacağınız aşağıda açıklanmıştır?
Sayesinde !
Kâr Al tetiklemesinin bir sonucu olarak verildi
ORDER _REASON_TP'nin nasıl ve neden olduğunu anlayamıyorum,
DEAL _REASON_TP'nin nasıl çalıştığına dair bir fikrim var, ancak burada siparişlerin ne olduğu net değil