[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 5. - sayfa 98

 

Kim'in bir işlevi var:

 //+------------------------------------------------------------------+
//|  Описание : Возвращает флаг разрешения торговли по времени.                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    hb - часы времени начала торговли                                       |
//|    mb - минуты времени начала торговли                                     |
//|    he - часы времени окончания торговли                                    |
//|    me - минуты времени окончания торговли                                  |
//+----------------------------------------------------------------------------+
bool isTradeTimeInt( int hb= 0 , int mb= 0 , int he= 0 , int me= 0 ) {
   datetime db, de;           // Время начала и окончания работы
   int       hc;               // Часы текущего времени торгового сервера

  db=StrToTime(TimeToStr( TimeCurrent (), TIME_DATE)+ " " +hb+ ":" +mb);
  de=StrToTime(TimeToStr( TimeCurrent (), TIME_DATE)+ " " +he+ ":" +me);
  hc=TimeHour( TimeCurrent ());
   if (db>=de) {
     if (hc>=he) de+= 24 * 60 * 60 ; else db-= 24 * 60 * 60 ;
  }

   if ( TimeCurrent ()>=db && TimeCurrent ()<=de) return (True);
   else return (False);
} 

2 sorum var:

1. Neden zamanı bir kerede bir diziye ve sonra bir diziyi zamana çevirir?

2. Fonksiyonda bu koşul neden var?

   if (db>=de) {
     if (hc>=he) de+= 24 * 60 * 60 ; else db-= 24 * 60 * 60 ;
  }

Sonuçta, zaman kontrolü aşağıda .. İşte:

 if ( TimeCurrent ()>=db && TimeCurrent ()<=de) return (True);
   else return (False);

Evet ve işlev parametrelerinde, zaman değişkenleri tarih saat türünde değil, bir nedenden dolayı int ...

 
Ha, gerçeğe ulaştım. Gerçek şu ki, düzenlemeye çalıştığım dosya dün bir flash sürücüden açıldı. Metin açık, her şey yolunda, ancak bugün flash sürücüyü bağlamadım. İşte ME4 ve anlaşılmaz - derlemek istediğim şey, metin orada, ancak düzenleme için MEVCUT DEĞİL. Kahretsin, olan bu.
 
hoz :

Kim'in bir işlevi var:

2 sorum var:

1. Neden zamanı hemen bir diziye, sonra bir diziyi zamana çevirir?

2. Fonksiyonda bu koşul neden var?

Sonuçta, zaman kontrolü aşağıda .. İşte:

Evet ve işlev parametrelerinde, zaman değişkenleri tarih saat türünde değil, bir nedenden dolayı int ...


1. Geçerli saat ve dakika değerlerini, fonksiyon parametrelerinde belirtilen değerlerle değiştirmek

şöyle yapardım:

db= TimeCurrent ()- TimeCurrent ()% 86400 +hb* 3600 +mb* 60 ;

2. Bir gün için başlangıç veya bitiş tarihlerinin ek olarak düzeltilmesi için

datetime ve int - genel olarak - aynı şey, ayrıca parametreler tam tarihler değil, yalnızca saat ve dakika sayısıdır

 
MikeM :


2. Bir gün için başlangıç veya bitiş tarihlerinin ek olarak düzeltilmesi için

Ne için? Burada danışmanın işlem süresini sınırlamanız gerekir. Ve işlem süresinin bittiği saatten işlem saatinin başladığı zamana kadar geçen süre bizi ilgilendirmiyor, çünkü şu anda danışman ticaret yapmıyor! SAÇMALIK..

mikeM :

datetime ve int - genel olarak - aynı şey, ayrıca parametreler tam tarihler değil, yalnızca saat ve dakika sayısıdır

Ama zaman zaman olmalı, nasıl fark olmaz?
 
hoz :


Ama zaman zaman olmalı, nasıl fark olmaz?


Zaman bir sayı ve bir tamsayıdır.
 
Vinin :

Zaman bir sayı ve bir tamsayıdır.


Zamanla bunun bir tarih olmadığını anladım çünkü sayıyı beyan ediyoruz. Ne dersin:

   if (db>=de) {
     if (hc>=he) de+= 24 * 60 * 60 ; else db-= 24 * 60 * 60 ;
  }

Kaç seçenekle karşılaştım, bunu henüz görmedim... Nedense garip. Ayrıca, burada bir döngü ve ticaretin başlama ve bitiş zamanı eksi ve artı yoktur. Bu anı anlamıyorum.

Aslında, db ve de ticaretinin başlangıç ve bitiş zamanlarını yukarıda aldık. Yani bu parça silinebilir ve sonra burada zamanı kontrol edeceğiz:

   if ( TimeCurrent ()>=db && TimeCurrent ()<=de) return (True);
   else return (False);

Fazladan kod yazmanın amacı nedir? Lütfen bu noktayı açıklayın. Bu gerçekten mantıklı değil.

 
hoz :


Zamanla bunun bir tarih olmadığını anladım çünkü sayıyı beyan ediyoruz. Ne dersin:

Kaç seçenekle karşılaştım, bunu henüz görmedim... Nedense garip. Ayrıca, burada bir döngü ve ticaretin başlama ve bitiş zamanı eksi ve artı yoktur. Bu anı anlamıyorum.

Aslında, db ve de ticaretinin başlangıç ve bitiş zamanlarını yukarıda aldık. Yani bu parça silinebilir ve sonra burada zamanı kontrol edeceğiz:

Fazladan kod yazmanın amacı nedir? Lütfen bu noktayı açıklayın. Bu gerçekten mantıklı değil.


Herkes kendi işini yapmakta özgürdür. Bunu Igor yaptı. Ben farklı yapıyorum.

Artı veya eksi. Yani işlem süresine bağlıdır. Örneğin, 21:00 ile 5:00 arasında ticaretin nasıl organize edileceği.

Dakikalar kullanılmasaydı, her şey büyük ölçüde basitleştirilebilirdi.

 
Vinin :


Herkes kendi işini yapmakta özgürdür. Bunu Igor yaptı. Ben farklı yapıyorum.

Artı veya eksi. Yani işlem süresine bağlıdır. Örneğin, 21:00 ile 5:00 arasında ticaretin nasıl organize edileceği.

Ve kodun gereksiz olduğu gerçeği. Herkese olur.

Dakikalar kullanılmasaydı, her şey büyük ölçüde basitleştirilebilirdi.


İşlem süresinin 21.00 ile 23.59 arasında ve ardından 00.01 ile 5.00 arasında olmasını sağlayın.

Diğer seçenekler neler?

 
hoz :


İşlem süresinin 21.00 ile 23.59 arasında ve ardından 00.01 ile 5.00 arasında olmasını sağlayın.

Diğer seçenekler neler?

if(Hour() >= 21 || Hour() < 5) yazarsanız, 21.00 ile 4.59 arasında olacaktır.
 
borilunad :
if(Hour() >= 21 || Hour() < 5) yazarsanız, 21.00 ile 4.59 arasında olacaktır.

Garip. Gece yarısından sonra atlıyor ve bunu hiç hesaba katmıyor mu?