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

 
MakarFX :

Göstergede böyle bir yazı tipi seçimi yapılıp yapılamayacağını söyler misiniz?


Neden? Numaralandırmanızı ve tüm sorunları yapın………

 
Alexey Viktorov :

Neden? Numaranızı ve tüm sorunları yapın………

Bu anlaşılabilir, ancak yüklü yazı tiplerinin bir listesi nasıl talep edilir?

 
Nikolai Semko :

Sen bir komedyensin.

Burada kimi çarmıha geriyorum?


Birşeyi kaçırdım. Teşekkür ederim. Neye ihtiyacın var!

 
ANDREY :

Anladım. Yardım için teşekkürler.

Hemen bir danışmanın bu kadar çok sipariş açmasının zor olduğunu düşündüm. Bu kodla sipariş sayısını sınırlamaya çalıştım

Yani, sadece 10:00'da bir sipariş açın. Ama sonuç aynı.

2020.10.27 10:25:17.548 çekirdek 1 36 Mb geçmiş verileri, 64 Mb onay verileri dahil olmak üzere 272 Mb bellek kullanıldı



Dürüst olmak gerekirse MKL5'i tam olarak bilmiyorum. Ama mantık sakat. Bir sipariş açmanız gerekiyor. Bu, tick fonksiyonunun başında saat değişkenini atayarak ve sonunda başka bir değişkene atayarak elde edilir. Ortada, değişkenler eşit değilse, bir sipariş açın. Dakika ile yukarıdaki örnek aynıdır.

 input int       StopLoss= 30 ;       // Stop Loss
input int       TakeProfit= 100 ;   // Take Profit
input double    Lot= 0.1 ;           // Количество лотов для торговли
int A;     //
int tm; 
//+------------------------------------------------------------------+
void OnTick ()
  {
//Print( "====================================================",  TimeCurrent() )   ;
//--- Объявляем структуры, которые будут использоваться для торговли
   MqlTick latest_price;       // Будет использоваться для текущих котировок
   MqlTradeRequest mrequest;   // Будет использоваться для отсылки торговых запросов
   MqlTradeResult mresult;     // Будет использоваться для получения результатов выполнения торговых запросов
   MqlDateTime time_now;     // Будет использоваться для
   
 TimeCurrent (time_now);  
 if (! SymbolInfoTick ( _Symbol ,latest_price))
 if ( time_now.hour== 10 && tm != time_now.hour ) // на первом тике, когда time_now.hour станет 10 а tm еще 9
                                           // и на следующем тике tm будет равно 10


   {
         mrequest.action = TRADE_ACTION_DEAL ;                                   // немедленное исполнение
         mrequest.price = NormalizeDouble (latest_price.bid, _Digits );           // последняя цена Bid
         mrequest.sl = NormalizeDouble (latest_price.ask + StopLoss* _Point , _Digits ); // Stop Loss
         mrequest.tp = NormalizeDouble (latest_price.ask - TakeProfit* _Point , _Digits ); // Take Profit
         mrequest.symbol = _Symbol ;                                             // символ
         mrequest.volume = Lot;                                                 // количество лотов для торговли
         mrequest.type= ORDER_TYPE_SELL ;                                       // ордер на продажу
         mrequest.type_filling = ORDER_FILLING_RETURN ;                             // тип исполнения ордера - все или ничего
         mrequest.deviation= 100 ;                                               // проскальзывание от текущей цены
         //--- отсылаем ордер
     OrderSend (mrequest,mresult);
    }  

tm= time_now.hour;
     return ;
  }



 
MakarFX :

Bu anlaşılabilir, ancak yüklü yazı tiplerinin bir listesi nasıl talep edilir?

Örneğinizde bunun kendi kendine yapılan bir liste olduğunu düşünüyorum. Windows'a bir istek olmadan.

 
Valeriy Yastremskiy :

Dürüst olmak gerekirse MKL5'i tam olarak bilmiyorum. Ama mantık sakat. Bir sipariş açmanız gerekiyor. Bu, tick fonksiyonunun başında saat değişkenini atayarak ve sonunda başka bir değişkene atayarak elde edilir. Ortada, değişkenler eşit değilse, bir sipariş açın. Dakika ile yukarıdaki örnek aynıdır.

bu yüzden EA'nın çalışmalarını yalnızca sihirbazlarıyla yapmayı denemeyi tavsiye ediyorlar.

Görev belirli bir saatte günde bir kez sipariş açmaksa, algoritma aşağıdaki gibidir:

- EA'yı başlattı, açık siparişlerin sayısını kontrol eder, sihrimizle bir sipariş açıksa, bir sonraki onay işaretine kadar çıkın

- sipariş yoksa, EA mevcut saat ve dakika verilenlerden daha büyük olana kadar bekler

- bu sefer geldi, EA, siparişlerin geçmişini kontrol ediyor ve eğer son gün için sihrimiz ile bir sipariş verilmediyse, o zaman bir sipariş verip çıkacağız - çıkış, sunucu hatalarını işlememek için faydalıdır, sipariş verilmezse, bir sonraki onay işaretinde tekrar yapmayı deneyeceğiz, yani. bu kene üzerinde bir siparişin yeniden açılması için bir döngü düzenlemeye gerek yok .... ancak bu bir zevk ve görev meselesi ve en basit uygulama )))

 
Igor Makanu :

bu yüzden EA'nın çalışmalarını yalnızca sihirbazlarıyla yapmayı denemeyi tavsiye ediyorlar.

Görev belirli bir saatte günde bir kez sipariş açmaksa, algoritma aşağıdaki gibidir:

- EA'yı başlattı, açık siparişlerin sayısını kontrol eder, sihrimizle bir sipariş açıksa, bir sonraki onay işaretine kadar çıkın

- sipariş yoksa, EA mevcut saat ve dakika verilenlerden daha büyük olana kadar bekler

- bu sefer geldi, EA, siparişlerin geçmişini kontrol ediyor ve son gün için sihrimizle bir sipariş verilmediyse, o zaman bir sipariş verip çıkacağız - çıkış, sunucu hatalarını işlememek için faydalıdır, sipariş verilmezse, bir sonraki onay işaretinde tekrar yapmayı deneyeceğiz, yani. bu kene üzerinde bir siparişin yeniden açılması için bir döngü düzenlemeye gerek yok .... ancak bu bir zevk ve görev meselesi ve en basit uygulama )))

Henüz sihir için büyümediler. Kesinlikle. 5 ke'de ise ikilem tabi ki hata analizli bir döngüde ya da tik tik pozisyon açmaya çalışıyor. Uzun cevaplar söz konusu olduğunda, bir kene üzerinde daha kolay olabilir.

 
Valeriy Yastremskiy :

Dürüst olmak gerekirse MKL5'i tam olarak bilmiyorum. Ama mantık sakat. Bir sipariş açmanız gerekiyor. Bu, tick fonksiyonunun başında saat değişkenini atayarak ve sonunda başka bir değişkene atayarak elde edilir. Ortada, değişkenler eşit değilse, bir sipariş açın. Dakika ile yukarıdaki örnek aynıdır.



Çok teşekkürler. Bana verdiğin bilgi benim için yeterli değildi. Ben de aynısını yapmaya çalıştım ama dördüne benzeterek. Bu durumda analojinin uygun olmadığı ortaya çıkıyor.
Tekrar teşekkürler.

 
Igor Makanu :

bu yüzden EA'nın çalışmalarını yalnızca sihirbazlarıyla yapmayı denemeyi tavsiye ediyorlar.

Görev belirli bir saatte günde bir kez sipariş açmaksa, algoritma aşağıdaki gibidir:

- EA'yı başlattı, açık siparişlerin sayısını kontrol eder, sihrimizle bir sipariş açıksa, bir sonraki onay işaretine kadar çıkın

- sipariş yoksa, EA mevcut saat ve dakika verilenlerden daha büyük olana kadar bekler

- bu sefer geldi, EA, siparişlerin geçmişini kontrol eder ve son gün için sihrimizle bir sipariş verilmemişse, o zaman bir sipariş verir ve çıkarız - çıkış, sunucu hatalarını işlememek için faydalıdır, sipariş verilmezse, bir sonraki onay işaretinde tekrar yapmayı deneyeceğiz, yani. bu kene üzerinde bir siparişin yeniden açılması için bir döngü düzenlemeye gerek yok .... ancak bu bir zevk ve görev meselesi ve en basit uygulama )))

Değerli bilgi için teşekkürler. Sayenizde mql 5 anlayışım genişledi ve derinleşti.
Kodumun örneğini kullanarak düşünce treninizi gösterirseniz size çok minnettar olurum. Bu, söylediklerinizi hızlı ve doğru bir şekilde anlamamı sağlayacak.
Tekrar çok teşekkür ederim.

İşte siparişin sadece 10:00'da açılması gereken koşulu yanlış yazdığım kodum.

 input int       StopLoss= 30 ;       // Stop Loss
input int       TakeProfit= 100 ;   // Take Profit
input double    Lot= 0.1 ;           // Количество лотов для торговли
int A;     //

//+------------------------------------------------------------------+
void OnTick ()
  {
//Print( "====================================================",  TimeCurrent() )   ;
//--- Объявляем структуры, которые будут использоваться для торговли
   MqlTick latest_price;       // Будет использоваться для текущих котировок
   MqlTradeRequest mrequest;   // Будет использоваться для отсылки торговых запросов
   MqlTradeResult mresult;     // Будет использоваться для получения результатов выполнения торговых запросов
   MqlDateTime time_now;     // Будет использоваться для
   
 TimeCurrent (time_now);  
 if (! SymbolInfoTick ( _Symbol ,latest_price))
 if (time_now.hour== 10 &&time_now.min== 0 )
   {
         mrequest.action = TRADE_ACTION_DEAL ;                                   // немедленное исполнение
         mrequest.price = NormalizeDouble (latest_price.bid, _Digits );           // последняя цена Bid
         mrequest.sl = NormalizeDouble (latest_price.ask + StopLoss* _Point , _Digits ); // Stop Loss
         mrequest.tp = NormalizeDouble (latest_price.ask - TakeProfit* _Point , _Digits ); // Take Profit
         mrequest.symbol = _Symbol ;                                             // символ
         mrequest.volume = Lot;                                                 // количество лотов для торговли
         mrequest.type= ORDER_TYPE_SELL ;                                       // ордер на продажу
         mrequest.type_filling = ORDER_FILLING_RETURN ;                             // тип исполнения ордера - все или ничего
         mrequest.deviation= 100 ;                                               // проскальзывание от текущей цены
         //--- отсылаем ордер
     OrderSend (mrequest,mresult);
    }   
     return ;
  }
 
ANDREY :

İşte siparişin sadece 10:00'da açılması gereken koşulu yanlış yazdığım kodum.

Ben saf MQL5 ile yazmıyorum, SB sınıfı CTrade kullanarak sipariş verebilirsiniz

arama CTrade SB kullanımı hakkında makaleler var