Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 135

 
zfs :
Ortalama kazanan ticaret, kaymayı kapatmaz ve karlılık küçüktür ve uygun olabilir).

Uzmanı kendim yazdım. Durdurma kaybı yoktur.

 
PetrovichV :

Uzmanı kendim yazdım. Durdurma kaybı yoktur.

Daha da kötü.)
 
zfs :
Daha da kötü.)
Teşekkür ederim.
 

Belki de kendi soruma cevap vereceğim, çünkü çözüm bulundu - kimin google'a gideceğini asla bilemezsiniz ...

Soru, geçmişten son siparişin açılış fiyatının nasıl doğru bir şekilde alınacağı ile ilgiliydi. (En azından benim için) hiçbir yolu olmadığı ortaya çıktı - siparişin değil, işlemin fiyatını çıkarmak gerekliydi. Ayrıca, test cihazında orijinal versiyon (benim tarafımdan yazılmamış) da çalıştı - aradaki farkın demoda fiyat yerine sadece "piyasa fiyatı" yazılması ve bunu talep etmeye çalıştığınızda bir çift, sıfırlar nedense döndürülür. Pekala, onların canı cehenneme, şimdi fonksiyon şuna benziyor:

PositionID = PositionGetInteger ( POSITION_IDENTIFIER );

double FindLastPrice( long PositionID) {
   int   i = 0 , DealsTotal;
   ENUM_DEAL_TYPE CheckType;
   long Ticket, OldTicket = 0 , PosID, Magic, Type;
   double OrderPrice = 0 ;
   
   DealsTotal = HistoryDealsTotal ();
   
   for (i = 0 ; i < DealsTotal; i++) {
      Ticket = ( int ) HistoryDealGetTicket (i);
      PosID  = HistoryDealGetInteger (Ticket, DEAL_POSITION_ID );
      Magic  = HistoryDealGetInteger (Ticket, DEAL_MAGIC );
      Type   = HistoryDealGetInteger (Ticket, DEAL_TYPE );
      
       if (Sell) CheckType = DEAL_TYPE_SELL ; 
       else CheckType = DEAL_TYPE_BUY ;
      
       if ((PosID == PositionID) && (Magic == MagicNumber) && (Type == CheckType)) {
         if (Ticket > OldTicket) {
            OrderPrice = HistoryDealGetDouble (Ticket, DEAL_PRICE );
            OldTicket = Ticket;
         }
      }
   }
   if (!OrderPrice) Print ( "Ошибка получения цены открытия предыдущей сделки! Error " , GetLastError ());
   return (OrderPrice);
}

Bu saçmalık için birkaç saat öldürmek zorunda kaldım, ama en azından her şeyin artıları var: bu çalışmayan işlev nedeniyle, aptalca yazmak için aynı anda dosyalarla temel çalışmaya hakim olan bir geçici çözüm bulmak zorunda kaldım. her yeni sipariş fiyatını bir dosyaya alıp gerekirse okuyunuz...

 
Lone_Irbis :

Belki de kendi soruma cevap vereceğim, çünkü çözüm bulundu - kimin google'a gideceğini asla bilemezsiniz ...

Soru, geçmişten son siparişin açılış fiyatının nasıl doğru bir şekilde alınacağı ile ilgiliydi. ....

Veya sitede aramayı kullanabilir veya zaten hiçbir şey olmayan makaleleri görüntüleyebilirler.

>>> MQL5 tarifleri - Konum özelliklerini almak için işlem geçmişi ve işlev kitaplığı

 
tol64 :

Veya sitede aramayı kullanabilir veya zaten hiçbir şey olmayan makaleleri görüntüleyebilirler.

>>> MQL5 tarifleri - Konum özelliklerini almak için işlem geçmişi ve işlev kitaplığı

Evet, bir haftadır bu sitede google'da dolaşıyorum (Google aracılığıyla, çünkü burada yerleşik arama biraz garip: ya tamamen karanlık şeyleri alaka düzeyine göre değil, rastgele bir sırayla veriyor; ya da genel olarak şunu bildiriyor: "hiçbir şey bulunamadı", aynı belgelerden kopyalanan istekler için bile)... Ancak yararlı bir şey bulmak için, en azından bu yararlı olanın ne olduğunu ve halihazırda var olan çalışmayan seçenekten nasıl farklı olduğunu bilmelisiniz: ) Dili iyi seviyede bilen bir kişinin konumundan arama yapmaktan bahsetmek kolay, ancak mql5 adını sadece bir haftalığına biliyorsanız ve zaten üzerinde bir şeyler bestelemeye çalışıyorsanız, uygulaması daha zordur...

Artı, bir konsept gibi hazır çözümleri ve ayrıntılı kılavuzları gerçekten sevmiyorum - kendi başıma çözme arzusunu yendiler. :) Belki kendi kendine çalışma yöntemim çok etkili değildir, ancak ilginç olması daha önemlidir - aksi takdirde bu konuya uzun süre kişisel zaman ayırmak için yeterli heves olmayacaktır.

Ancak, bağlantı için teşekkürler, bir göz atacağım.

 

Tünaydın.

20-30 yıllık para birimleri için geçmiş verileri yüklemek bir şekilde mümkün mü?

Ve sonra sadece son 12 yıldır Alfa-forex'te ve ondan önce bazı parçalar.

 
PetrovichV :

Tünaydın.

20-30 yıllık para birimleri için geçmiş verileri yüklemek bir şekilde mümkün mü?

Ve sonra sadece son 12 yıldır Alfa-forex'te ve ondan önce bazı parçalar.

Broker size bir geçmiş sunar, süre arttıkça kalite düşer.
 

İşte bir satın alma emrinin verildiği ve ardından SL ve TP'sinin değiştirildiği kod.

Hata: 2013.09.06 00:03:39 İşlemler '10022332': başarısız #0 siparişini değiştir, piyasada 0,00 GBPUSD satın al sl: 0.00000 tp: 0.00000 -> 1.56255, sl: 1.55787 tp: 1.56787 [Geçersiz istek]
Seviyeleri değiştirme talebinin nesi yanlış?

 int Positions;
double delta= 0.00500 ;

MqlTradeRequest   Request;
MqlTradeResult    Result;
MqlTick          InfoTick;


void OnTick ()

{
//---

 if ( PositionsTotal ()== 0 ) // если открытых позиций нет, покупаем
   { 
      
     SymbolInfoTick ( _Symbol , InfoTick);
                              
    Request.action= TRADE_ACTION_DEAL ;
    Request.symbol= _Symbol ;
    Request.volume= 1 ;
    Request.price=InfoTick.bid;
    Request.sl=InfoTick.bid - delta;
    Request.tp=InfoTick.bid + delta;
    Request.deviation= 50 ;
    Request.type= ORDER_TYPE_BUY ;
    Request.type_filling= ORDER_FILLING_FOK ;
               
     OrderSend (Request, Result);
   
  } else {                                     // меняем уровни
        SymbolInfoTick ( _Symbol , InfoTick); 
        
        Request.action= TRADE_ACTION_MODIFY ;
        Request.symbol= _Symbol ;
        Request.sl=InfoTick.last - delta;
        Request.tp=InfoTick.last + delta;
                          
         OrderSend (Request, Result);
       }
}
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
agvozdezkiy :

İşte bir satın alma emrinin verildiği ve ardından SL ve TP'sinin değiştirildiği kod.

Hata: 2013.09.06 00:03:39 İşlemler '10022332': başarısız #0 siparişini değiştir, piyasada 0,00 GBPUSD satın al sl: 0.00000 tp: 0.00000 -> 1.56255, sl: 1.55787 tp: 1.56787 [Geçersiz istek]
Seviyeleri değiştirme talebinin nesi yanlış?

Başlamak için hata kodunu alın.
Neden: