2017.01 . 13 10 : 00 : 03.210 Trades 'xxxxx': sell limit 1.00 MXI- 6.17 at 2300.75
2017.01 . 13 10 : 00 : 03.216 Trades 'xxxxx': accepted buy limit 1.00 MXI- 6.17 at 2230.15
2017.01 . 13 10 : 00 : 03.218 Trades 'xxxxx': accepted sell limit 1.00 MXI- 6.17 at 2300.75
2017.01 . 13 10 : 00 : 03.219 Trades 'xxxxx': failed buy limit 1.00 MXI- 6.17 at 2230.15 [Market closed]
2017.01 . 13 10 : 00 : 03.220 Trades 'xxxxx': failed sell limit 1.00 MXI- 6.17 at 2300.75 [Market closed]
katma
Sipariş gönderilmeden önce işlem süresi kontrol edilir
//+------------------------------------------------------------------+
//| Expert Check traiding time function |
//+------------------------------------------------------------------+
bool CheckTradingTime( MqlDateTime &tick_time)
{
datetime lk_time = TimeCurrent (tick_time);
if ( ( tick_time.day_of_week == int (FirstDay)) ||
( tick_time.day_of_week == int (SecondDay)))//выходные
{
return ( false );
}
#ifdef DEBUG
if ((tick_time.hour >= 0 ) && (tick_time.hour < 6 )) // DEBUG 6-00
{
return ( false );
}
#else
if ((tick_time.hour >= 0 ) && (tick_time.hour < 10 ))
{
return ( false );
}
#endif
// 13 * 3600 + 59 * 60 + 30 = 50370 - 13:59:30
// 14 * 3600 = 50400 - 14:00:00
// 14 * 3600 + 30 = 50430 - 14:00:30
// 14 * 3600 + 60 = 50460 - 14:01:00
// 18 * 3600 + 44 * 60 + 30 = 67470 - 18:44:30
// 18 * 3600 + 45 * 60 = 67500 - 18:45:00
// 18 * 3600 + 45 * 60 + 30 = 67530 - 18:45:30
// 18 * 3600 + 46 * 60 = 67560 - 18:46:00
// 19 * 3600 = 68400 - 19:00:00
// 19 * 3600 + 60 = 68460 - 19:01:00
// 23 * 3600 + 49 * 60 + 30 = 85770 - 23:49:30
// 23 * 3600 + 50 * 60 = 85800 - 23:50:00
// 23 * 3600 + 50 * 60 + 30 = 85830 - 23:50:30
// 23 * 3600 + 51 * 60 = 85860 - 23:51:00
//---
ulong trade_time = tick_time.hour * 3600 + tick_time.min * 60 + tick_time.sec;
//--- //10:00:02
if (((trade_time >= time_st_mon) && (trade_time < 50370 )) ||
((trade_time >= time_st_day) && (trade_time < 67470 )) ||
((trade_time >= time_st_evn) && (trade_time < 85770 )))
{
return ( true );
}
return (false);
}
ulong time_st_mon = GetStringTime(TimeStMon);
{
int k = 0 ;
string s_sec, s_min, s_hour;
int str_size = StringLen (a_string);
//---
if (str_size != 8 ) return ( 0 );
//---
for ( int i = str_size - 1 ; i >= 0 ; i--)
{
ushort let_symbol = StringGetCharacter (a_string, i);
if (let_symbol == ':')
{
k++;
switch (k)
{
case 1 :
s_sec = StringSubstr (a_string, i + 1 , str_size - i - 1 );
break ;
case 2 :
s_min = StringSubstr (a_string, i + 1 , str_size - i - 4 );
s_hour = StringSubstr (a_string, 0 , i);
break ;
}
//---
}
}
if (k != 2 ) return ( 0 );
ulong t_sec = ulong ( StringToInteger (s_sec));
ulong t_min = ulong ( StringToInteger (s_min)) * 60 ;
ulong t_hour = ulong ( StringToInteger (s_hour)) * 3600 ;
//---
return (t_hour + t_min + t_sec);
}
Arkadaşlar geliştiriciler!
Peki, terminalin saatini Borsa saatiyle ne zaman senkronize ediyorsunuz?
2017.01 . 13 10 : 00 : 03.969 Trades 'xxxxx': sell limit 1.00 ED- 6.17 at 1.0813
2017.01 . 13 10 : 00 : 03.975 Trades 'xxxxx': accepted buy limit 2.00 ED- 6.17 at 1.0642
2017.01 . 13 10 : 00 : 03.975 Trades 'xxxxx': accepted sell limit 1.00 ED- 6.17 at 1.0813
2017.01 . 13 10 : 00 : 03.978 Trades 'xxxxx': failed buy limit 2.00 ED- 6.17 at 1.0642 [Market closed]
2017.01 . 13 10 : 00 : 03.979 Trades 'xxxxx': failed sell limit 1.00 ED- 6.17 at 1.0813 [Market closed]
Burada, kimin dünya saatini umursamadığını ve kendi saatini, bir borsayı veya bir komisyoncuyu belirlediğini anlamalısınız. Bencil çıkarlarıyla ya da sadece aptallıkları yüzünden.
Kimin zamanı dünyayla çakışıyor?
Burada, kimin dünya saatini umursamadığını ve kendi saatini, bir borsayı veya bir komisyoncuyu belirlediğini anlamalısınız. Bencil çıkarlarıyla ya da sadece aptallıkları yüzünden.
Kimin zamanı dünyayla çakışıyor?
Evet, Tanrı onu korusun, dünya, zamanına göre Moskova Borsasında ticaret yapıyoruz,
ve suçlanacak olan komisyoncu değil, geliştiricilerdir, çünkü Borsa'dan gelen herhangi bir teklif
zamanı vardır, bu nedenle bilinen son alıntının zamanı olmalıdır
değişimin bilinen zamanı (SUNUCU DEĞİL) ve TERMİNAL
ZamanAkım
TimeCurrent, EXCHANGE'ın değil, SUNUCU'nun zamanını döndürür!
Bu nedenle, muhtemelen, "ve bacaklar büyür."
Evet, Tanrı onu korusun, dünya, Moskova Borsasında zamanına göre ticaret yapıyoruz,
ve suçlanacak olan komisyoncu değil, geliştiricilerdir, çünkü Borsa'dan gelen herhangi bir teklif
zamanı vardır, bu nedenle bilinen son alıntının zamanı olmalıdır
değişimin bilinen zamanı (SUNUCU DEĞİL) ve TERMİNAL
ZamanAkım
TimeCurrent, EXCHANGE'ın değil, SUNUCU'nun zamanını döndürür!
Bu nedenle, muhtemelen, "ve bacaklar büyür."
Sunucu Moskova'daysa ve borsa Brezilya'daysa, bu olabilir mi?
Sunucu Moskova'daysa ve takas Brezilya'daysa, bu olabilir mi?
Sunucunun nerede olduğu umrumda değil!
Fiyat teklifi (veya daha doğrusu teklifin ZAMANI) mevcut TİCARET zamanıdır.
Katma
Şimdi aşağıdakiler oluyor
MT5 sunucusu, teklifin saatinden bağımsız olarak teklifi terminale gönderir,
SERVER zamanını teklif zamanı ile senkronize etmeden, çünkü bir ön pazar var.
EA bir sipariş gönderir , terminal bunu onaylar ve sunucu zamanı BELİRSİZCE ne ile kontrol eder ve
sipariş 3 saniyeye varan bir hata ile reddedildi (bilgisayarımın saatine göre) !!!!
Sunucunun nerede olduğu umrumda değil!
Fiyat teklifi (veya daha doğrusu teklifin ZAMANI) mevcut TİCARET zamanıdır.
Katma
Şimdi aşağıdakiler oluyor
MT5 sunucusu, teklifin saatinden bağımsız olarak teklifi terminale gönderir,
SERVER zamanını teklif zamanı ile senkronize etmeden, çünkü bir premarket var.
EA bir sipariş gönderir, terminal bunu onaylar ve sunucu zamanı BELİRSİZCE ne ile kontrol eder ve
3 saniyeye varan bir hatayla siparişi reddedin!!!!
Fiyat teklifi (veya daha doğrusu teklifin ZAMANI) mevcut TİCARET zamanıdır.
stok zamanı.
Sunucu zamanı terminale hiç iletilmez: TimeLocal == TimeTradeServer .
Ben de bu sorunu yaşadım. Bu konu forumda defalarca açıldı. Herkes bu sorunu kendine göre çözüyor ama ben doğru çözümü görmedim. Nasıl doğru yapılacağına karar vermek ve geliştiricilerden bunu düzeltmelerini şiddetle istemek gerekir.
Şimdi zamanı almak için üç fonksiyon var (eğer hafıza çalışıyorsa) bunlar:
TimeLocal == TimeTradeServer , bilgisayar saati,
TimeTradeServer == değersiz fonksiyon,
TimeCurrent == son fiyat teklifi zamanı .
Değişim zamanını eklemeniz, TimeTradeServer'ı çıkarmanız veya bunun yerine mevcut değişim zamanını geçmeniz veya TimeE xchange tipini eklemeniz gerekir .
Ve zamanla uğraşmadan terminalde belirli verileri almak en iyisi olacaktır:
- Yeni başvurular gönderebilirsiniz,
- Siparişleri silebilirsiniz
- Ticarete izin verilir.
Nedense artık terminalde böyle bir işlevsellik yok.
Нужно добавить время биржы, выкинуть TimeTradeServer или вместо него передавать текущее время биржи , или добавить типа TimeE xchange .
Yine de, bu bizim takasımız için bir seçenek değil, diğerlerinde nasıl olduğunu bilmiyorum.
İstedikleri zaman bazen 10:00'da, bazen 10:03'te veya 10:05'te müzayedeyi açarlar.
Görünüşe göre fazla uyuyorlar, kahve içiyorlar - sonra açıyorlar))
Serezha!
TimeCurrent yardımını okuyun - bunun SUNUCU zamanı olduğunu söylüyor

- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Arkadaşlar geliştiriciler!
Peki, terminalin saatini Borsa saatiyle ne zaman senkronize ediyorsunuz?
2017.01 . 13 10 : 00 : 03.969 Trades 'xxxxx': sell limit 1.00 ED- 6.17 at 1.0813
2017.01 . 13 10 : 00 : 03.975 Trades 'xxxxx': accepted buy limit 2.00 ED- 6.17 at 1.0642
2017.01 . 13 10 : 00 : 03.975 Trades 'xxxxx': accepted sell limit 1.00 ED- 6.17 at 1.0813
2017.01 . 13 10 : 00 : 03.978 Trades 'xxxxx': failed buy limit 2.00 ED- 6.17 at 1.0642 [Market closed]
2017.01 . 13 10 : 00 : 03.979 Trades 'xxxxx': failed sell limit 1.00 ED- 6.17 at 1.0813 [Market closed]