KimIV'ten faydalı özellikler - sayfa 81

 
KimIV >> :

76. sayfada ...

Teşekkür ederim

 

isTradeTimeInt() işlevi.

Bu işlev, zaman ticareti izni bayrağını döndürür. Dönüş değeri doğru veya yanlıştır. isTradeTimeInt() işlevi, zaman aralığı tanıma ilkesine göre isTradeTimeString() işlevine benzer, yani ticaret başlangıç zamanı, bitiş zamanından (bir gün içindeki bir zaman aralığı) daha büyük veya daha kısa (farklı bir zaman aralığı) olabilir. günler). isTradeTimeInt() işlevi, aşağıdaki isteğe bağlı parametreleri kabul eder:

  • hb - Sayı, ticaretin başlama saatini ayarlar. Varsayılan değer 0'dır.
  • mb - Sayı, işlem başlama saatinin dakikalarını ayarlar. Varsayılan değer 0'dır.
  • he - Sayı, işlem bitiş saatinin saatlerini ayarlar. Varsayılan değer 0'dır.
  • me - Sayı, işlem bitiş saatinin dakikalarını ayarlar. Varsayılan değer 0'dır.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 30.04.2009                                                     |
//|  Описание : Возвращает флаг разрешения торговли по времени.                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    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 ) ;
}
 

isTradeTimeInt() işlevini kullanma örnekleri.

  1. Bir gün içindeki zaman dilimi. Takas sunucusunun şu anki saati aralığın içinde ve "08:30"a eşit olmasına izin verin.
    if (isTradeTimeInt(6, 0, 9, 30)) Message("Торгуем...");
    else Message("Отдыхаем...");
  2. Bir gün içindeki zaman dilimi. Takas sunucusunun şu anki saati aralığın dışında ve "08:30"a eşit olmasına izin verin.
    if (isTradeTimeInt(12, 0, 16, 30)) Message("Торгуем...");
    else Message("Отдыхаем...");
  3. Zaman aralığı, günün sınırını içerir. Takas sunucusunun şu anki saati aralığın içinde ve "08:30"a eşit olmasına izin verin.
    if (isTradeTimeInt(21, 15, 9, 30)) Message("Торгуем...");
    else Message("Отдыхаем...");
  4. Zaman aralığı, günün sınırını içerir. Takas sunucusunun şu anki saati aralığın dışında ve "08:30"a eşit olmasına izin verin.
    if (isTradeTimeInt(22, 0, 5, 30)) Message("Торгуем...");
    else Message("Отдыхаем...");

not. Ekli, isTradeTimeInt() işlevini test etmek için bir komut dosyasıdır.

Dosyalar:
 

Kısa açıklamalar ve bağlantılar içeren güncellenmiş özellik listesi...

Dosyalar:
f_kimiv.rar  12 kb
 
KimIV >> :

isCloseLastPosByStop() işlevi.

Bu işlev, durarak son konumu kapatmak için bayrağı döndürür. İşaret kaldırıldı - Doğru - StopLoss tetiklendi. Bayrak atlandı - Yanlış - pozisyon başka bir nedenle kapatıldı. Dikkate alınacak pozisyonların daha doğru seçimi harici parametreler tarafından belirlenir:


Merhaba

İşlevinizi kendi amaçlarım için kullanmaya çalışıyorum. Küçük çalışma uzmanı. Sadece satar ve kapatır, bir pozisyon. Bazen arka arkaya birkaç stop loss yakalar. İlk duraktan sonra satış koşullarının değişmesini istiyorum, Uzman Danışman pozisyonları açıyor ama kapatmıyor. Söyle bana neyi yanlış yapıyorum ?

................................................ . ......

if ( isCloseLastPosByStop(NULL,OP_SELL, MagicNamber) == 0)
{
if ( (StochK_0<StochD_1) && (StochD_1 > 80) ) // 1. koşullu satış
bilet=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "Benim EXP", MagicNamber,0,Green); // satmak

OrderSelect(0, SELECT_BY_POS);

if (OrderSelect(0, SELECT_BY_POS)==true )
Yazdır("seçildi");
başka
Print("hata seçilmedi: ",GetLastError());
Yeniler();
if((StochK_0<30)&& (StochD_1 < 30))
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);
}
başka
if ( isCloseLastPosByStop(NULL,OP_SELL, MagicNamber) == 1)
{
if ((StochK_0<StochD_1) && (StochK_0 < 60) && (StochD_1 < 60) ) // 2. satış koşulları

bilet=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0, "Benim EXP", MagicNamber,0,Green); //

......................

 
KoZaNOStra писал(а) >>
EA pozisyonları açar, ancak onları kapatmaz .

StochK_0 ve StochD_1 değişkenlerinin çıktılarını alın. Belki bir pozisyonu kapatmak için sizin şartlarınıza girmeyen değerler alıyorlar.

 

KimIV'e

Merhaba, bu küme göstergesini aynı çizim ve çiftin adı giriş parametresi ile + ÇİFT değişim oranı değerlerinin (sağ üst köşe) dönüşü ile bir fonksiyona dönüştürmeye yardımcı olabilir misiniz? Şimdiden teşekkür ederim.

P.S..... Bir haftadır acı çekiyorum

Dosyalar:
cc_240.mq4  13 kb
 
döviz çiftinin açık penceresinde haberleri görüntülemek için bir işlev var mı?
 
Ancak, herhangi bir saatin başında, ilk saniyede iki farklı yönlendirilmiş pozisyon açtığımızı ve saatin son saniyesinde başarısız emri kapattığımızı kodla nasıl ifade edebiliriz?
 
VAM_ писал(а) >>
Ancak, herhangi bir saatin başında, ilk saniyede iki farklı yönlendirilmiş pozisyon açtığımızı ve saatin son saniyesinde başarısız emri kapattığımızı kodla nasıl ifade edebiliriz?

Ve eğer orada değillerse, ilk ve son saniyeler?