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

 
Valeriy Yastremskiy :

Mantık topal, her şey orada ve biletler ve sipariş türleri için diziler. Sadece herhangi bir nedenle emir açarken doldurulmaz ve TicketLimit işlevinde diziyi sıfırlar. İlk bakışta.

Satrançta nasıl? Bir hareket eksik. anlamaya çalışacağım. Teşekkürler Valery.

 

Çubuklarla ilgili istatistikleri nasıl doğru bir şekilde alacağımı söyle

Bunu yaptım, sayıyı doğru sayıyor ama verileri kullanmaya çalıştığımda "0" alıyorum

 //---
   int i,limit;
   datetime Start= 0 ;
   if ((rates_total-prev_calculated- 1 )<= 0 ) return ( 0 );
   limit=rates_total-prev_calculated- 1 ;
   for (i=limit; i>= 0 ; i--) 
     {
      Label1Buffer[i]=open[i];
      Label2Buffer[i]=close[i];
       if (Start!=time[i])
        {
         a+= 1 ;                                         // кол-во баров
         if (Label1Buffer[i] <Label2Buffer[i]) u+= 1 ;   // восходящие бары
         if (Label1Buffer[i] >Label2Buffer[i]) d+= 1 ;   // нисходящие бары
         if (Label1Buffer[i]==Label2Buffer[i]) b+= 1 ;   // Дожи
         Start=time[i];
        }
       if (Start==time[i]&&a<=limit)
        {
         Print (i, " / " ,u, " / " ,d, " / " ,b, " / " ,a, " / " ,limit); //
        }
       if (a==limit) 
        {
         ObjectCreate ( 0 , "STAT1" , OBJ_TEXT , 0 ,time[ 0 ],high[ 0 ]+ 750 * Point );
         ObjectSetText( "STAT1" ,d, 8 , "Arial" , clrBlack );
         ObjectCreate ( 0 , "STAT2" , OBJ_TEXT , 0 ,time[ 0 ],low[ 0 ]- 250 * Point );
         ObjectSetText( "STAT2" ,u, 8 , "Arial" , clrBlack );
         Print (d/u);
        }
     }
2021.08 . 11 17 : 09 : 46.884 StatisticsADR EURUSD,Daily: 0
2021.08 . 11 17 : 09 : 46.884 StatisticsADR EURUSD,Daily: 1 / 3041 / 2971 / 41 / 6053 / 6053
2021.08 . 11 17 : 09 : 46.884 StatisticsADR EURUSD,Daily: 2 / 3041 / 2970 / 41 / 6052 / 6053
2021.08 . 11 17 : 09 : 46.884 StatisticsADR EURUSD,Daily: 3 / 3041 / 2969 / 41 / 6051 / 6053
2021.08 . 11 17 : 09 : 46.884 StatisticsADR EURUSD,Daily: 4 / 3041 / 2968 / 41 / 6050 / 6053
2021.08 . 11 17 : 09 : 46.884 StatisticsADR EURUSD,Daily: 5 / 3041 / 2967 / 41 / 6049 / 6053
2021.08 . 11 17 : 09 : 46.884 StatisticsADR EURUSD,Daily: 6 / 3041 / 2966 / 41 / 6048 / 6053

Belki zaten normal bir yol vardır, ama ben "tekerleği yeniden icat ediyorum")

Lütfen bana söyle.

 
MakarFX :

Çubuklarla ilgili istatistikleri nasıl doğru bir şekilde alacağımı söyle

Bunu yaptım, sayıyı doğru sayıyor ama verileri kullanmaya çalıştığımda "0" alıyorum

Belki zaten normal bir yol vardır, ama ben "tekerleği yeniden icat ediyorum")

Lütfen bana söyle.

Görünüşe göre tüm int değişkenleriniz var ve bölme sonucu 0'dan küçük. Bu nedenle, 0;

Denemek:

 Print (( double )d/u);
 
Galim_V :

Satrançta nasıl? Bir hareket eksik. anlamaya çalışacağım. Teşekkürler Valery.

в глобальной области
int ind=0, Ind=0;
......

 if (ParSar>MaxClose&&chekt== 1 ){

    ticket=_OrderSend( NULL ,OP_BUYSTOP, 0.01 ,MaxClose+(spread* Point ()), 0 );
ind++;
_Tacket[ind]=ticket; Ind=ind;
  }
    }
     if (MinClose!= 0 ){
   if (ParSar<MinClose&&chekt== 1 ){
    _price= NormalizeDouble ( MinClose-(spread* Point ()), Digits );
    ticket=_OrderSend( NULL ,OP_SELLSTOP, 0.01 ,_price, 0 );
ind++;
_Tacket[ind]=ticket; Ind=ind;
........

for(i=Ind,i<1,Ind--) // вместо Ind OrderTotal правильнее, если есть и другие ордера в терминале
{OrderSelect( _Tacket[i], SELECT_BY_TICKET )
проверки и действия
}
// Здесь запомнить тикет в массив _тикет и тип ордера тоже и запомнить последний индекс массива!!!

 //А потом в Ордер селект подставлять значение массива _тикет) Цикл по индексу массива _тикет от 1 до последнего индекса.
 
Mihail Matkovskij :

Görünüşe göre tüm int değişkenleriniz var ve bölme sonucu 0'dan küçük. Bu nedenle, 0;

Denemek:

Teşekkür ederim.
 
Bir önceki projemde bana yardımcı olan herkese tekrar teşekkürler.

Sonra bir sonraki Uzman Danışman hakkında başka bir fikir ortaya çıktı, belki birileri ORBO (open Range Brake out) stratejisine zaten aşinadır?

 

Söyleyin lütfen, sipariş açmak için böyle bir tanımı basitleştiren bir işlev var mı?

 if (Bid < OpenPrice && Bid > OpenPrice- 10 * Point )
if (Ask > OpenPrice && Ask < OpenPrice+ 10 * Point )
Sonuç olarak, fiyat bu aralığa düşmezse sipariş açılmaz.
 
MakarFX :

Söyleyin lütfen, sipariş açmak için böyle bir tanımı basitleştiren bir işlev var mı?

Sonuç olarak, fiyat bu aralığa düşmezse sipariş açılmaz.

Peki, kağıda çiz

AçıkFiyat________________

Teklif etmek_____________________________

OpenPrice-10*_Puan______________


OpenPrice - Teklifin 10*_Puan'dan fazla olmaması gerektiği resimden görülebilir.

 
Alexey Viktorov :

Peki, kağıda çiz

AçıkFiyat________________

Teklif etmek_____________________________

OpenPrice-10*_Puan______________


OpenPrice - Teklifin 10*_Puan'dan fazla olmaması gerektiği resimden görülebilir.

fark modülü. Modül olmadan sadece üst bölge duruma düşer. | OpenPrice - Teklif |> 10*_Puan açılış koşulu

 
Alexey Viktorov :

Peki, kağıda çiz

AçıkFiyat________________

Teklif etmek_____________________________

OpenPrice-10*_Puan______________


OpenPrice - Teklifin 10*_Puan'dan fazla olmaması gerektiği resimden görülebilir.

beni şaşırtıyorsun