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

 
Vladimir Pavlov :

Aptalca bilgisayar içinde kopyalamak için bir komut dosyası yaptı .... Kopyalamaz!

Peki, hatanın açıklaması nerede? Hangi işletim sistemi? MetaTrader 5 yapısı nedir?

Klasöre yazma izniniz var mı?


Eklendi: Görünüşe göre dizin yoksa, önce oluşturulması gerekiyor.


Kopyalama mevcut bir dizine gittiğinde - sorun değil. MetaTrader 5 hatasız çalışır.

 

Belirli bir kimliğe sahip bir pozisyonun kapandığından nasıl emin olabilirsiniz?

Açık olan çözüm, PositionSelectByTicket'in false döndürmesidir, ancak bu muhtemelen açık pozisyonların bir ticaret hesabına bağlanırken terminale yüklenmek için zamanının olmadığı bir durumda da olabilir mi?

Biraz daha karmaşık bir çözüm - PositionSelectByTicket false döndürür ve HistorySelectByPosition true döndürür. Bu durumda, bu pozisyonun geçmişi yüklenmişse, açık pozisyonların listesinin yüklenmesi için zaman olmalıdır.

Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
. ... Rick D. ... . :

Terminalin senkronize edilmesini bekleyin. Örneğin, while ( HistorySelect ).

 
fxsaber :

Terminalin senkronize edilmesini bekleyin. Örneğin, while(HistorySelect).

Terminalin iç inceliklerini bilen biri değilim. Ama belki OnInit geldiğinde, açık pozisyonlar tablosunun (ve muhtemelen işlem geçmişinin) zaten yüklenmiş olduğu garanti edilir?

 
. ... Rick D. ... . :

Terminalin iç inceliklerini bilen biri değilim.

Ayrıca uzman olmaktan uzak. Denemek için bir kerede akla birkaç seçenek geliyor. Ve ne işe yarar - denemeniz gerekir.

 
Vladimir Karputov :

En basit çözüm, MetaTrader'da istenen finansal aracın bir grafiğini açmak ve bu çizelgeye bir Uzman Danışman eklemek.

Bu biliniyor. Ancak programın kendisinde, iş için bir çiftin nasıl atanacağı ilginç mi? Bunun için bir fonksiyon var mı?
 
cepreu1 :
Bu biliniyor. Ancak programın kendisinde, iş için bir çiftin nasıl atanacağı ilginç mi? Bunun için bir fonksiyon var mı?

Kolay.

Örneğin, ticaret işlemleri. CTrade ticaret sınıfına, Buy yöntemine bakıyoruz:

 bool   Buy( 
   double         volume,           // объем позиции 
   const string   symbol= NULL ,     // символ 
   double         price= 0.0 ,       // цена исполнения 
   double         sl= 0.0 ,           // цена Stop Loss 
   double         tp= 0.0 ,           // цена Take Profit 
   const string   comment= ""        // комментарий 
   )

İstediğiniz karakteri belirtebileceğiniz yeri vurguladım.


Veya örneğin açılış, kapanış fiyatları hakkında veri elde etmek ... - CopyRates :

 int    CopyRates ( 
   string            symbol_name,       // имя символа 
   ENUM_TIMEFRAMES   timeframe,         // период 
   int               start_pos,         // откуда начнем  
   int               count,             // сколько копируем 
   MqlRates          rates_array[]       // массив, куда будут скопированы данные 
   );
 
Vladimir Karputov :

Kolay.

Örneğin, ticaret işlemleri. CTrade ticaret sınıfına, Buy yöntemine bakıyoruz:

İstediğiniz karakteri belirtebileceğiniz yeri vurguladım.


Veya örneğin açılış, kapanış fiyatları hakkında veri elde etmek ... - CopyRates :

Evet tamam. Ancak başlangıçta ne bir çift atamak istediğimi belirtmedim, ancak

pozisyon açmadan. Ve Buy bunu bir pozisyon açarak yapar,

ve CopyRates , çiftin geçmiş verilerini atamadan verir.

 
cepreu1 :

Evet tamam. Ancak başlangıçta ne bir çift atamak istediğimi belirtmedim, ancak

pozisyon açmadan. Ve Buy bunu bir pozisyon açarak yapar,

ve CopyRates , çiftin geçmiş verilerini atamadan verir.

Biraz süslüsün ama tahmin etmeye çalışacağım: Sembol adıyla bir giriş parametresine ihtiyacınız var mı? Sonra işte kod - " InpSymbol " parametresinde istenen sembolü ayarlayın. Bu sembol OnInit() içinde kontrol edilir - böyle bir sembol yoksa, EA kaldırılır ve terminalin "Uzmanlar" sekmesinde (veya test cihazının "Günlük" sekmesinde) bir hata mesajı görünür. .

 //+------------------------------------------------------------------+
//|                                                   Set Symbol.mq5 |
//|                              Copyright © 2018, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2018, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.000"
//---
#include <Trade\SymbolInfo.mqh>  
CSymbolInfo    m_symbol;                     // symbol info object
//--- input parameters
input string    InpSymbol= "ASDWER" ;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   if (!m_symbol.Name(InpSymbol)) // sets symbol name
       return ( INIT_FAILED );
   RefreshRates ();
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   if (! RefreshRates ())
       return ;
   string text=m_symbol.Name()+ "\n" +
               "Ask " + DoubleToString (m_symbol. Ask (),m_symbol. Digits ())+ "\n" +
               "Bid " + DoubleToString (m_symbol. Bid (),m_symbol. Digits ());
   Comment (text);

  }
//+------------------------------------------------------------------+
//| Refreshes the symbol quotes data                                 |
//+------------------------------------------------------------------+
bool RefreshRates ( void )
  {
//--- refresh rates
   if (!m_symbol. RefreshRates ())
     {
       Print ( "RefreshRates error" );
       return ( false );
     }
//--- protection against the return value of "zero"
   if (m_symbol. Ask ()== 0 || m_symbol. Bid ()== 0 )
       return ( false );
//---
   return ( true );
  }
//+------------------------------------------------------------------+

" InpSymbol " parametresinde belirtilen sembol varsa, tablo üzerinde bilgi görüntülenecektir.

  • Sembol adı
  • Fiyatını sor
  • Teklif fiyatı


İşte nasıl çalışır: EURUSD'de başlatırız ve ayarlarda USDJPY sembolünü belirtiriz. Danışmanın EURUSD sembolü üzerinde çalıştığı, ancak USDJPY sembolünden bilgi (fiyatlar) aldığı ortaya çıktı.


Dosyalar:
 
Vladimir Karputov :

Biraz süslüsün ama tahmin etmeye çalışacağım: Sembol adıyla bir giriş parametresine ihtiyacınız var mı? Sonra işte kod - " InpSymbol " parametresinde istenen sembolü ayarlayın. Bu sembol OnInit() içinde kontrol edilir - böyle bir sembol yoksa, EA kaldırılır ve terminalin "Uzmanlar" sekmesinde (veya test cihazının "Günlük" sekmesinde) bir hata mesajı görünür. .

" InpSymbol " parametresinde belirtilen sembol varsa, tablo üzerinde bilgi görüntülenecektir.

  • Sembol adı
  • Fiyatını sor
  • Teklif fiyatı


İşte nasıl çalışır: EURUSD'de başlatırız ve ayarlarda USDJPY sembolünü belirtiriz. Danışmanın EURUSD sembolü üzerinde çalıştığı, ancak ABD sembolünden bilgi (fiyatlar) aldığı ortaya çıktı.

Vladimir Karputov :

Biraz süslüsün ama tahmin etmeye çalışacağım: Sembol adıyla bir giriş parametresine ihtiyacınız var mı? Sonra işte kod - " InpSymbol " parametresinde istenen sembolü ayarlayın. Bu sembol OnInit() içinde kontrol edilir - böyle bir sembol yoksa, EA kaldırılır ve terminalin "Uzmanlar" sekmesinde (veya test cihazının "Günlük" sekmesinde) bir hata mesajı görünür. .

" InpSymbol " parametresinde belirtilen sembol varsa, tablo üzerinde bilgi görüntülenecektir.

  • Sembol adı
  • Fiyatını sor
  • Teklif fiyatı


İşte nasıl çalışır: EURUSD'de başlatırız ve ayarlarda USDJPY sembolünü belirtiriz. Danışmanın EURUSD sembolü üzerinde çalıştığı, ancak USDJPY sembolünden bilgi (fiyatlar) aldığı ortaya çıktı.


Evet ama bu örneği ele alırsak EURUSD üzerinde Expert Advisor'ı başlatıyoruz ama USDJPY sembolünden bilgi (fiyatlar) alıyoruz.

Neden karmaşık, yani, yine, bu örneği alırsak, o zaman EURUSD (veya başka bir şey) konusunda bir uzman başlatırız.

doğru çift) ve bu kadar, bu çifti izliyoruz ve sonra gerekirse bir pozisyon açıyoruz.