[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 508

 
artmedia70 :

int iEn yüksek ( dize sembol, int zaman dilimi, int tür, int sayı=WHOLE_ARRAY, int başlangıç=0)

Bulunan en yüksek değerin dizinini döndürür (geçerli çubuğa göre ofset).
Seçenekler:
semboller - Verileri aranacak enstrümanın sembolik adı. NULL, geçerli karakter anlamına gelir.
zaman aralığı - Dönem. Grafik dönemlerinden biri olabilir. 0, mevcut grafiğin periyodu anlamına gelir.
tip - Zaman dizisi kimliği. Zaman serisi tanımlayıcı değerlerinden herhangi biri olabilir.
saymak - Arasında aramanın yapılması gereken zaman serisi öğelerinin sayısı (geçerli çubuktan dizinin yukarısına doğru).
Başlat - En yüksek değer aramasının başladığı ilk çubuğun indeksi (geçerli çubuğa göre ofset). Negatif değerler yok sayılır ve boş bir değerle değiştirilir.
Misal:


Çok teşekkürler. Başka soru geleceğini sanmıyorum.
 
ask :

Bir insan için anlaşılmaz ne olabilir, bilmiyorum. Saldırganlığa ve kabalığa neyin sebep olduğunu anlamasam da (bunu görmezden gelebilirler), başkaları cevap verirdi/kendi başıma halledebilirdi, umurunda mı?

Boşuna Alexei'yi öyle algılıyorsunuz. O, buradaki en hayırsever insanlardan biridir. Seni kesinlikle kırmak istemedi. Görev net değilse herkes telepatlara gönderilir. Bu, anlamı olan yerel bir şaka.
 
Reshetov :

İşte bunlar (kodunuzda daha birçok hata var, ancak bunlar derleyiciden geçmeyecek bile): Ayrıca, kodu derleyicinin bakış açısından daha mantıklı bir kodla değiştirseniz bile:

karşılaştırmadan önce gerçek değerleri normalleştirmeden yine de teorik olarak yanlış olacaktır. Daha da kötüsü, fiyat bir tıkta birden fazla pip değişirse ve sizin durumunuzu aşarsa normalleşme sonuç vermeyebilir.

Bunun gibi bir kesişim koşulu aramak daha doğru olacaktır:


PS MetaTrader'da derlemeden sonra hata veren yeri bulmak oldukça kolaydır:

1. "Dosya" sütunundaki "Araçlar" sekmesinde, derleyicinin bir hata tespit ettiği satır numarası ve sembol numarası parantez içinde virgülle ayrılmış olarak belirtilir.

2. Aynı sekmede "Açıklama" sütunundaki hata mesajına çift tıklarsanız, editördeki imleç derleyicinin bu hatayı bulduğu yere atlayacaktır.


ipuçları için teşekkürler.

 
İyi günler Tüm forum katılımcılarına saygılar! Mümkünse, söyleyin - platformu kapattığınızda, günlükteki veriler elbette silinir, değil mi? Ve bilgisayar kapatıldığında, orada, başka bir yerde bir not defterine kaydedilmeleri için uzmandan çıktılar veya diğer çıktı verileri nasıl yazılır? Çok mu zor ve mümkün mü?
 
dkfl.zrjdktdbx :
İyi günler Tüm forum katılımcılarına saygılar! Mümkünse, söyleyin - platformu kapattığınızda, günlükteki veriler elbette silinir, değil mi? Ve bilgisayar kapatıldığında, orada, başka bir yerde bir not defterine kaydedilmeleri için uzmandan çıktılar veya diğer çıktı verileri nasıl yazılır? Çok mu zor ve mümkün mü?
Program klasöründeki günlüklere bakarsanız, orada birçok ilginç şey bulacaksınız.
 
Teşekkür ederim!
 
Emir açılış fiyatı ve zararı durdur fiyatı göz önüne alındığında, mevduat para birimindeki olası zararı nasıl hesaplayacağımı söyleyin?
 
sss2019 :
Emir açılış fiyatı ve zararı durdur fiyatı göz önüne alındığında, mevduat para birimindeki olası zararı nasıl hesaplayacağımı söyler misiniz?
 //--------------------------------------------------------------------
// Функция модификации StopLoss всех ордеров указанного типа
// Глобальные переменные:
// Mas_Ord_New             Массив ордеров последний известный
// int TralingStop         Значение TralingStop(количество пунктов)
//--------------------------------------------------------------------
void SampleTrailing_texbook ( int Tip, double V_StopLossPips, double V_TakeProfitPips)
  {
   int Ticket;                       // Номер ордера
   double
   Price,                           // Цена открытия рыночного ордера
   TS,                               // TralingStop (относит.знач.цены)
   SL,                               // Значение StopLoss ордера
   TP;                               // Значение TakeProfit ордера
   double difference; //разность в пунктах    
   double Profit;
   
   bool Modify;                     // Признак необходимости модифи.
//----------------------------------------------------------------------
      PointValue=MarketInfo(Symbol(),MODE_TICKVALUE)*(MarketInfo(Symbol(),MODE_POINT)/MarketInfo(Symbol(),MODE_TICKSIZE));      
      Print( "PointValue = " ,PointValue, " Point  = " , DoubleToStr(Point, Digits) );
      Level_new=MarketInfo(Symbol(),MODE_STOPLEVEL ); // мин уровень трала
      Modify= false ;                       // Пока не назначен к модифи
      
      Price = OrderOpenPrice();           // Цена открытия ордера
      SL    = V_StopLossPips;             // Значение StopLoss ордера
      TP    = V_TakeProfitPips;           // Значение TakeProft ордера
      Ticket= OrderTicket();               // Номер ордера
      
       if (TralingStop<Level_new)           // Если меньше допустимого..
         TralingStop=Level_new;           // .. то допустимый
         TS=TralingStop*Point;             // То же в относит.знач.цены
       //-----------------------------------------------------------------
       switch (Tip)                         // Переход на тип ордера
        {
         case 0 :                         // Ордер Buy
            difference = NormalizeDouble (Bid-TS - OrderOpenPrice(), Digits)/Point;               
            Profit = Lots_New * difference*PointValue; // Профит по УРОВНЮ ТРАЛА рыночного ордера на данном объеме (не путать c OrderProfit)
             if (trlinloss== false ){         // тралим только профит
               if (Profit>MathAbs (Sum_Loss)) // если профит по уровню трала больше суммарного убытка предыдущих поз 
                 if (NormalizeDouble(SL,Digits)< // Если ниже желаемого..
               NormalizeDouble(Bid-TS,Digits) && NormalizeDouble(Price,Digits)< NormalizeDouble(Bid-TS,Digits))
              {                           // ..то модифицируем его:
               SL=Bid-TS;                 // Новый его StopLoss
               Modify= true ;               // Назначен к модифи.
              }
            } 
             else {                         // тралим с зоны лоссов
               if (NormalizeDouble(SL,Digits)< // Если ниже желаемого..
               NormalizeDouble(Bid-TS,Digits))
              {                           // ..то модифицируем его:
               SL=Bid-TS;                 // Новый его StopLoss
               Modify= true ;               // Назначен к модифи.
              }
             } 
             break ;                         // Выход из switch
         
         
         case 1 :                           // Ордер Sell
             difference = NormalizeDouble (OrderOpenPrice()-(Ask+TS),Digits)/Point;
             Profit = Lots_New * difference*PointValue; // Профит по УРОВНЮ ТРАЛА рыночного ордера на данном объеме (не путать c OrderProfit)             
             if (trlinloss== false ) {           // тралим с уровня профита по ордеру
                 if (Profit>MathAbs (Sum_Loss)) // если профит по уровню трала больше суммарного убытка предыдущих поз            
                   if ((NormalizeDouble(SL,Digits)>   // Если выше желаемого..
                        NormalizeDouble(Ask+TS,Digits)||
                        NormalizeDouble(SL,Digits)== 0 ) && NormalizeDouble(Price,Digits)>NormalizeDouble(Ask+TS,Digits)) //.. или нулевой(!)
              {                           // ..то модифицируем его
               SL=Ask+TS;                 // Новый его StopLoss
               Modify= true ;               // Назначен к модифи.
              }
            }            
             else {                         // тралим с зоны лоссов
          
             if (NormalizeDouble(SL,Digits)> // Если выше желаемого..
               NormalizeDouble(Ask+TS,Digits)||
               NormalizeDouble(SL,Digits)== 0 ) //.. или нулевой(!)
              {                           // ..то модифицируем его
               SL=Ask+TS;                 // Новый его StopLoss
               Modify= true ;               // Назначен к модифи.
              }
            }  
        }                                 // Конец switch
       if (Modify== false )                   // Если его не надо модифи..
         return ;                         // ..то идём по циклу дальше
       bool Ans=OrderModify(Ticket,Price,SL,TP, 0 ); //Модифицируем его!
       //----------------------------------------------------------------------
       if (Ans== false )                     // Не получилось :( 
        {                                 // Поинтересуемся ошибками:
            Print( "Не удалось модифицировать ордер №" ,OrderTicket(), ". Ошибка: " ,GetLastError());
             return ;                       // .. то уходим.
        }
}                                         // Выход из пользов. функции


Bu f-iya trolü ders kitabından alınmıştır, kendi ihtiyaçlarım için tarafımdan yeniden yapılmıştır. Burada belirli bir lot hacminde, takip eden seviyede kârın hesaplanması ve önceki kapalı ardışık kârsız pozisyonların toplam kaybının üzerindeki kâr değeri - iz açılır - her şeye benzetme yoluyla sahip olacaksınız, sadece kar, burada olduğu gibi, ancak bir kayıp - ihtiyacınız olduğu gibi.

Alış ve satış değişkenleri için hesaplamaya dikkat edin:

 double difference; //разность в пунктах    
double Profit; 
PointValue= MarketInfo ( Symbol (),MODE_TICKVALUE)*( MarketInfo ( Symbol (),MODE_POINT)/ MarketInfo ( Symbol (),MODE_TICKSIZE));
Her şeyi aynı şekilde yapın.
 
Yani hala bir pip'in mevduat para birimindeki değerini nasıl bulacağımı anlamıyorum?
 
sss2019 :
Yani hala mevduat para biriminde bir pip'in değerini nasıl bulacağımı anlamıyorum?

bu hesaplamaya bakın - BENZER OLARAK yapın. Herşey.