Hatalar, hatalar, sorular - sayfa 409

 
TG :

Lütfen bana aşağıdaki kodun mql5'te nasıl olacağını söyleyin anlamıyorum

frekansta geçerli saat nasıl alınır?
Tutmak
 //+------------------------------------------------------------------+
//|                                                       пример.mq5 |
//+------------------------------------------------------------------+
#property copyright ""
#property link       ""
#property version   "1.00"

input int HourOpen= 4 ;

MqlDateTime str;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---

//---
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   TimeToStruct ( TimeCurrent (),str);

   if (str.hour==HourOpen)
     {
       // действие
     }
  }
//+------------------------------------------------------------------+
 
sergey1294 :
Tutmak
TimeCurrent()'in bir aşırı yüklemesi var, böylece sürümünüz de doğru olsa da, zamanı doğrudan kullanabilirsiniz ( TimeToStruct() öğesini atlayarak).
 

stringo :

Onlar. Bu seçeneğin uygulanmasıyla ilgili ciddi sorunlar var mı?:

 void OnTrade (
             const string symbol, //символ, от которого (по которому) пришло торговое событие
             const uchar type,   //тип торгового события (изменения в ордерах, позициях или сделках)
             const ulong ticket   //тикет ордера или сделки, либо идентификатор позиции (в зависимости от второго параметра)
             );

Aynen öyle. Mesele şu ki, ticaret ve mesaj kuyruğu hiçbir şekilde senkronize değil. Aynı biletten birçok mesaj gelebilir.

Ayrıca, bu yığından ilk mesajı aldığınızda, aynı bilet üzerinde daha fazla mesajın olup olmadığı hakkında hiçbir şey bilmiyorsunuz. Bilet değişikliğini işleme koymak için acele ettiniz, ancak bilet artık orada değil, zaten kapalı pozisyonlar geçmişinde. Ne yapalım? Bilinmiyor .

Artık kişisel olmayan bir işlem olayı geldiğinde, açık pozisyonların mevcut durumunu ve işlem geçmişini hemen öğrenebilirsiniz. Bilet numaranız yok ve mevcut durum dışında odaklanacak bir şeyiniz yok.

Temassız birkaç gün oldu.

Belki, elbette, OnTrade() işlevinden olası parametreleri kullanmak için farklı seçenekler vardır, ancak bu seçeneği hedefliyorum:

1. Siparişler. Bir sonraki "yığından" mesajını aldıktan sonra, siparişin açık siparişler listesinde mi ( OrderSelect ) yoksa geçmiş siparişler listesinde mi ( HistoryOrderSelect ) olduğunu sipariş biletinden öğreneceğim. Onlar. Belirli bir siparişin mevcut konumu hakkında sipariş listeleriyle ilgili en güncel bilgileri alırım.

2. Pozisyonlar. Bir sonraki mesajı "yığından" aldıktan sonra, sembolün adıyla bu sembolün konumunun durumunun ne olduğunu buluyorum ( PositionSelect ). Onlar. Ayrıca pozisyonun mevcut durumu hakkında en güncel bilgileri alıyorum.

Sonraki - gerekirse belirli bir aracın özellikleriyle çalışın.

Bu nedenle, döngüsel kontrollerin aşırı kullanımından kaçınmaya çalışıyorum.

 
Urain ve sergey1294 hızlı yanıt için teşekkürler, şimdi anlaşıldı
 
AlexSTAL :
Ne yazıyor? Semptomlar neler?

Hiçbir şey yazmıyor! Bir demo hesabı açmaya çalışıyorum (farklı DC'lerde denedim)

sorunlar

ve sonra bir hesap oluşturamazsınız

 
papaklass :
Çoğu tüccarın, zararı durdur veya kâr al işleminin tetiklenip tetiklenmediğini ve hangi enstrümanda olduğunu bilmesi gerekir. Alım satım olaylarının geri kalanı egzotiktir ve alım satımla pek ilgisi yoktur. BENİM NACİZANE FİKRİME GÖRE. Bu nedenle, OnTrade() işlevinde bir sembol rapor edildiyse, örneğin mevcut bakiye değerlerini öncekiyle karşılaştırarak, sl veya tp'nin ne işe yaradığını belirlemek mümkün olacaktır. En azından bir sembol yapın.
Kabul ediyorum. En azından bir sembole ihtiyaç var ve sonra ne olduğunu anlayacağız.
tilkiler :

Hiçbir şey yazmıyor! Bir demo hesabı açmaya çalışıyorum (farklı DC'lerde denedim)

sorunlar

ve sonra bir hesap oluşturamazsınız

Terminali ne zaman ve nereden indirdiniz? Bilgilendirici olmadığı için bir sonraki pencerenin ekran görüntüsü istenir.
 

geliştiriciler

Win 2003 SP2'de (terminal modunda) ticaret hesabındaki bilgilerin sürekli olarak silinmesi bir hata mı yoksa güvenliği artırmak için mi tasarlandı?

Daha doğrusu, programın aynı kopyasını normal ve terminal modunda farklı hesaplarla dönüşümlü olarak kullanırsanız, hesap verileri periyodik olarak kaybolur. Görünüşe göre, farklı hesaplar altında sadece terminal modundaysa, benzer bir durum işe yarayacaktır (bu henüz test edilmemiştir).

 
papaklass :
Çoğu tüccarın, zararı durdur veya kâr al işleminin tetiklenip tetiklenmediğini ve hangi enstrümanda olduğunu bilmesi gerekir. Ticaret olaylarının geri kalanı egzotiktir ve ticaretle çok az ilgisi vardır. BENİM NACİZANE FİKRİME GÖRE. Bu nedenle, OnTrade() işlevinde bir sembol rapor edildiyse, örneğin mevcut bakiye değerlerini öncekiyle karşılaştırarak, sl veya tp'nin ne işe yaradığını belirlemek mümkün olacaktır. En azından bir sembol yapın.
"Bileti korumak"ta :) Bekleyen emirlerle çalışmayı ve doğumdan emekliliğe kadar kaderlerini takip etmeyi tercih ediyorum. Bu "egzotik, ticaretle pek ilgisi olmayan" nedir? Aksine, siparişlerin akıbetinin biletlerine göre noktasal takibi çağın bir gereğidir. - Mükerrer bir bekleyen emir vermemek veya önceden ayarlanmış bir emrin işleyişini aşırıya kaçmamak için. Yukarıda yazdığım parametrelere sahipseniz, emirlerin nokta takibi bloğu OnTrade() fonksiyonuna aktarılabilir.
 
papaklass :
Çoğu tüccarın, zararı durdur veya kâr al işleminin tetiklenip tetiklenmediğini ve hangi enstrümanda olduğunu bilmesi gerekir. Ticaret olaylarının geri kalanı egzotiktir ve ticaretle çok az ilgisi vardır. BENİM NACİZANE FİKRİME GÖRE. Bu nedenle, OnTrade() işlevinde bir sembol rapor edildiyse, örneğin mevcut bakiye değerlerini öncekiyle karşılaştırarak, sl veya tp'nin ne işe yaradığını belirlemek mümkün olacaktır. En azından bir sembol yapın.
Bir kez daha tekrarlıyorum. Konu kapanmadı. Şimdilik, kabul edilebilir bir çözüm bulunana kadar ertelendi. Eh, daha önemli görevler henüz çözülmedi.
 
Yedelkin :
"Bileti korumak"ta :) Bekleyen emirlerle çalışmayı ve doğumdan emekliliğe kadar kaderlerini takip etmeyi tercih ediyorum. Bu "egzotik, ticaretle pek ilgisi olmayan" nedir? Aksine, siparişlerin akıbetinin biletlerine göre noktasal takibi çağın bir gereğidir. - Mükerrer bir bekleyen emir vermemek veya önceden ayarlanmış bir emrin işleyişini aşırıya kaçmamak için. Yukarıda yazdığım parametrelere sahipseniz, spot takip emirleri bloğu OnTrade() işlevine aktarılabilir.
Belki kaç tane işlem olayının kuyrukta olduğu hakkında bilgi verirseniz, o zaman çok şey basitleştirilmiş olacaktır.