MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1331

 
Aleksei Stepanenko :
Üzgünüm, burada sohbete daldım, fark etmedim ...

Konu genel ve kodlarınız her zaman ilgi çekici...

çok benimsendi)

 
Iurii Tokman :
MakarFX :

.

 
Iurii Tokman :

ukraynaca teknik zavdannya daha iyi anlıyor

Henüz bu seviyeye sahip değilim, ana dilim Rusça :)

...aynı zeka seviyesinde bira
 
Aleksei Stepanenko :

Henüz bu seviyeye sahip değilim, ana dilim Rusça :)

Ben SSCB'denim... İki ana dilim var)
 
MakarFX :
Ben SSCB'denim... İki ana dilim var)
.
 
MakarFX :
Ben SSCB'denim... İki ana dilim var)

ve bizde üç tane var, surzhik hala

 
DanilaMactep :

Matematikte iyi değilim - bir siparişin açılmasından koddaki durma noktasına kadar olan mesafeyi sl yerine nasıl hesaplayabilirim? böyle sonuçlandı

Bunun gibi normalleştirilmiş lot değeri

Koddaki açılıştan durağa kadar olan mesafenin nasıl hesaplanacağını anlamak için kalıyor?

Açık fiyat ile stop fiyatı arasındaki farkın mutlak değerini fiyat adımına bölün.

   int sl = fabs (OrderOpenPrice()-OrderStopLoss())/ _Point ;

ve bu sl değeri formüle girecektir.

ATR göstergesinde hesaplanan bir stop koyduğunuzu düşünürsek, bu yeterlidir.

 double lot = MathFloor ((Free*MaxRisk/ 100 )/(sl / _Point *LotVal)/Step)*Step; //СТРАШНАЯ ФОРМУЛА РАСЧЁТА ОБЪЁМА ЛОТА
Ve bu normalleştirilmiş parti büyüklüğü olacaktır.
 
MakarFX :

açılış fiyatı satın al

zarar durdur fiyatını satın al

yayılmış

Daha net hale geldi, sadece alım ve satım fiyatlarına ne kadar değer verdiğimi anlamak için kaldı. Koduma göre bir sipariş açmak şöyle oluyor.

 OrderSend ( Symbol (),OP_BUY,lot,Ask,slippages,Bid-sl,Bid+tp , "ДИВЕРГЕНЦИЯ НА БАЙ АО" ); // ОТКРЫВАЕМ БАЙ ОРДЕР

OrderSend ( Symbol (),OP_SELL,lot,Bid,slippages,Ask+sl,Ask-tp , "ДИВЕРГЕНЦИЯ НА СЕЛ АО" ); // ОТКРКЫВВАЕМ СЕЛ ОРДЕР

Tobish değişkenlerine Ask atadığım alıcının açılış fiyatı, değişkene ise Teklif atadığım satışların açılış fiyatı?

 
DanilaMactep :

Daha net hale geldi, sadece alım ve satım fiyatlarına ne kadar değer verdiğimi anlamak için kaldı. Koduma göre bir sipariş açmak şöyle oluyor.

Tobish değişkenlerine Ask atadığım alıcının açılış fiyatı, değişkene ise Teklif atadığım satışların açılış fiyatı?

 OrderSend ( Symbol (),OP_BUY,lot,Ask,slippages,Bid- sl ,Bid+tp , "ДИВЕРГЕНЦИЯ НА БАЙ АО" ); // ОТКРЫВАЕМ БАЙ ОРДЕР

Bu fonksiyona bakılırsa, stoploss'u zaten biliyorsunuz... Sorunun ne olduğunu anlamadım

 
Alexey Viktorov :

Açık fiyat ile stop fiyatı arasındaki farkın mutlak değerini fiyat adımına bölün.

ve bu sl değeri formüle girecektir.

ATR göstergesinde hesaplanan bir stop koyduğunuzu düşünürsek, bu yeterlidir.

Ve bu normalleştirilmiş parti büyüklüğü olacaktır.

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

 if (tip_sl==en_po_atr)
     { //ЕСЛИ ТИП СТОП ЛОССА СТОИТ ПО АТР ТО ВЫСЧИТЫВАЕМ ЕГО ИЗ АТР
     //Print("СТОП ПО АТР, ЕГО РАЗМЕР ");
     sl= iATR ( NULL ,PeriodForWork_sl,atr_sl_period, 1 ); // ПОЛУЧЕНИЕ ЗНАЧЕНИЙ АТР ДЛЯ ВЫСТАВЛЕНИЯ СТОПЛОССА
       Print ( "СТОП ПО АТР, ЕГО РАЗМЕР " +sl);
     }
     else //ИНАЧЕ- ТО ЕСТЬ ЕСЛИ СТОП ЛОСС ФИКСИРОВАННЫЙ В ПУНКТАХ
     {
     Print ( "СТОП ЛОС ФИКСИРОВАННЫЙ В ПУНКТАХ" );
     sl= razmer_fikc_sl* Point ; // ПЕЕРМЕННОЙ СТОП ЛОССА ПРИСВАЕВАЕМ ФИКСИРОВАНОНЕ ЗНАЧЕНИЕ ПУНКТОВ И ДОМНОЖАЕМ НА ПОИНТ
     }

Sonra normalleştirmemi yorumladım ve bu şekilde atadım.

     sl = fabs (OrderOpenPrice()-OrderStopLoss())/ _Point ; // ПРИСВОИЛ ЗНАЧЕНИЕ КАК СОВЕТОВАЛИ
     //sl= NormalizeDouble(sl,Digits());// НОРМАЛИЗАЦИЯ ЗНАЧЕНИЯ СТОП ЛОССА ДЛЯ ОТКРЫТИЯ СДЕЛКИ ТО  ЧТО БЫЛО ЗАКОМЕНТИРОВАЛ

Kodun devamında, bir kar hesaplamam var - orada sorun yoktu ve karı hesapladıktan sonra tavsiye edilen korkunç bir formül ekledim

 double lot = MathFloor ((Free*MaxRisk/ 100 )/(sl/ Point *LotVal)/Step)*Step; //СТРАШНАЯ ФОРМУЛА РАСЧЁТА ОБЪЁМА ЛОТА КОТОРУЮ МНЕ СОВЕТОВАЛИ

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?

TEST BAŞLATILIRKEN HATA