[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 159

 
1Rakso >> :

1) Ve harici değişkenler aracılığıyla nasıl devre dışı bırakılır?

2) İlk açık emrin OrderClose ile kapatılacağı ve sonraki 2, 3, vb. emirlerin kapatılmayacağı şekilde orada ayarlanabilir mi? Diyelim ki bir Alış emri açtım - bu ilk emir, sonra başka bir alış emri açtım - ikinci emir, vb. ve bu emir dizisinden sadece 1. emir OrderClose tarafından kapatılacak mı?

https://www.mql5.com/en/forum/105913 adresinin sayfalarında gezinin

1) Yaklaşık olarak, yani -

 extern bool      AutoClose = True ;
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


//********* Закрытие позиций ****************************************
if ( AutoClose ) {  
//----переменные для закрытия позиций ----
double Stochast_0 = iStochastic ( NULL , 0 , Stochastic_period , 3 , 3 , MODE_SMA , 0 , MODE_MAIN , 0 ) ;
double Stochast_1 = iStochastic ( NULL , 0 , Stochastic_period , 3 , 3 , MODE_SMA , 0 , MODE_MAIN , 1 ) ;
//----------------------------------------------------------------------
  for ( int v = 0 ; v < OrdersTotal ( ) ; v + + )                             {       
      if ( OrderSelect ( v , SELECT_BY_POS , MODE_TRADES ) )               {           
        if ( OrderSymbol ( ) = = Symbol ( ) & & OrderMagicNumber ( ) = = MagicNum )   { 
//-----------------------------------------------------                  
if ( OrderType ( ) = = OP_BUY ) { 
      if ( Stochast_1 > 75 & & Stochast_0 < 75 )     {
           OrderClose ( OrderTicket ( ) , OrderLots ( ) , Bid , 3 , Green ) ; // закрываем позицию
                // return(0); // выходим
                }       
     }  
 //--------------------------------------------------------
if ( OrderType ( ) = = OP_SELL ) { 
      if ( Stochast_1 < 25 & & Stochast_0 > 25 )    {
                 OrderClose ( OrderTicket ( ) , OrderLots ( ) , Ask , 3 , Green ) ; // закрываем позицию
                // return(0); // выходим
                }       
     }  
 //-------------------------------------------------------                       
    }  // Symbol()  
  } // select
 } //total
} //Close_

2)

önce kilidi ( // ) kaldırın

// dönüş(0); // çıkış

ve sonra sadece ilk (veya son) pozisyonlar kapatılacaktır.

 
PyMbIH >> :

Herkese merhaba )))

Yardım.

mql4 programlamaya yeni başladı.

Uzman yazıyorum.. böyle bir soru vardı

nasıl yapılır.

EA'mın yalnızca Pazartesi günleri çalışmasını istiyorum.

 //Открытие и закрытие  позиций только в понедельник  
      if ( TimeDayOfWeek ( TimeCurrent ( ) ) = = 1 )
         return ( 0 ) ;  
 
rid писал(а) >>

Teşekkür ederim!!

 
Vinin >> :

Teşekkür ederim Vin =)

 
rid >> :

'Kapanış pozisyonları' adresinin sayfalarına bakın. Gösterge sinyaliyle.'

1) Yaklaşık olarak, yani -

2)

önce kilidi ( // ) kaldırın

// dönüş(0); // çıkış

ve sonra sadece ilk pozisyonlar kapatılacaktır.

Teşekkürler kurtulun !

Bana çok yardımcı oldun, hala kibar insanlar var)

Her şeyi anladım mat kısmını okuyacağım umarım fazla vaktinizi almamışımdır)

 

Lütfen yardım et.

1.mq4 (ekli) EA'nın görsel testi sırasında, 3-cci-h3 göstergesini (ekli) çizelgeye sürükleyin, o zaman, göründüğü gibi, hesaplanan cci'nin kesinlikle aynı parametreleriyle, gösterge sinyalleri ve gerçek cci (sağ üst köşedeki nesne metni) eşleşmiyor.

NİYE YA?

Ve nedense bu türkiyede uyarılar çalışmıyor.

Danışman kodu:

 double lasthigh , lastlow , lasthigh2 = 200000 , lastlow2 = 0 , lastpos = 0 , t [ 2 ] ;

int start ( )
{ Comment ( "" ) ;
lasthigh = High [ 1 ] ; lastlow = Low [ 1 ] ;
if ( lasthigh < lasthigh2 ) lasthigh2 = lasthigh ;
if ( lastlow > lastlow2 ) lastlow2 = lastlow ;
t [ 0 ] = lasthigh2 ;
t [ 1 ] = lastlow2 ;  
string s1 = "lasthigh2 *** " + DoubleToStr ( t [ 0 ] , 5 ) ;
string s2 = "lastlow2 *** " + DoubleToStr ( t [ 1 ] , 5 ) ;
string str [ 2 ] ;
str [ 0 ] = s1 ;
str [ 1 ] = s2 ;
color col = Lime ;
     for ( int y = 0 ; y < 2 ; y + + )
     { ObjectCreate ( "textSignal" + y , OBJ_LABEL , 0 , 0 , 0 , 0 , 0 ) ;    
      ObjectSet ( "textSignal" + y , OBJPROP_CORNER , 1 ) ;
      ObjectSet ( "textSignal" + y , OBJPROP_XDISTANCE , 35 - 25 ) ;
      ObjectSet ( "textSignal" + y , OBJPROP_YDISTANCE , y * ( 20 ) + 20 + 8 ) ;
      ObjectSetText ( "textSignal" + y , str [ y ] , 15 , "Tahoma" , col ) ;
     }
  
  if ( lastpos = = 0 ) { if ( lastlow2 > lasthigh ) {
  Comment ( "PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   PRODAGA!!!" ,
  "PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   " ) ; lasthigh2 = 2000000 ; lastlow2 = 0 ; lastpos = 1 ; } }
  else { if ( lasthigh2 < lastlow ) { Comment ( "POKUPKA!!!   POKUPKA!!!   POKUPKA!!!   POKUPKA!!!   POKUPKA!!!   POKUPKA!!!   POKUPKA!!!" ,
  "   POKUPKA!!!   POKUPKA!!!   POKEPKA!!!   POKEPKA!!!   POKEPKA!!!" ) ; lasthigh2 = 2000000 ; lastlow2 = 0 ; lastpos = 0 ; } }

}


Gösterge kodu:

 //+------------------------------------------------------------------+
//|                                                     i-3CCI-h.mq4 |
//|                                               johnfantom & KimIV |
//|                                              http://www.kimiv.ru |
//|                                                                  |
//|  02.01.2006  CCI с 3-х ТФ в одном флаконе.                       |
//+------------------------------------------------------------------+
#property copyright "johnfantom & KimIV"
#property link      "http://www.kimiv.ru"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
#property indicator_maximum 1.4
#property indicator_level1  0
#property indicator_minimum - 1.2

//------- Внешние параметры индикатора -------------------------------
extern int CCI_Period_0 = 14 ;     // Период CCI для текущего ТФ
extern int Level_0      = 100 ;    // Уровень CCI для текущего ТФ
extern int TF_1         = 60 ;     // Количество минут первого ТФ
extern int CCI_Period_1 = 14 ;     // Период CCI для первого ТФ
extern int Level_1      = 100 ;    // Уровень CCI для первого ТФ
extern int TF_2         = 240 ;    // Количество минут второго ТФ
extern int CCI_Period_2 = 14 ;     // Период CCI для второго ТФ
extern int Level_2      = 100 ;    // Уровень CCI для второго ТФ
extern int NumberOfBars = 1000 ;  // Количество баров обсчёта (0-все)
extern int ExtBars = 3 ; 
int per ;


//------- Буферы индикатора ------------------------------------------
double buf0 [ ] ;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void init ( ) {
  IndicatorDigits ( 1 ) ;

  SetIndexBuffer ( 0 , buf0 ) ;
  SetIndexLabel ( 0 , "i-3CCI-h" ) ;
  SetIndexStyle ( 0 , DRAW_HISTOGRAM , STYLE_SOLID , 2 ) ;
  SetIndexEmptyValue ( 0 , 0 ) ;
}

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void deinit ( ) {
  Comment ( "" ) ;
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
void start ( ) {
  double cci0 , cci1 , cci2 ;
  int    nb1 , nb2 , count ;
  int    LoopBegin , sh ;


 	if ( NumberOfBars = = 0 ) LoopBegin = Bars - 1 ;
  else LoopBegin = NumberOfBars - 1 ;
  LoopBegin = MathMin ( Bars - 1 , LoopBegin ) ;
  count = IndicatorCounted ( ) ;
  for ( sh = count ; sh > = 0 ; sh - - ) {
    nb1 = iBarShift ( NULL , TF_1 , Time [ sh + 1 ] , False ) ;
    nb2 = iBarShift ( NULL , TF_2 , Time [ sh + 1 ] , False ) ;

    cci0 = iCCI ( NULL , 0   , CCI_Period_0 , PRICE_CLOSE , sh + 1 ) ;
    cci1 = iCCI ( NULL , TF_1 , CCI_Period_1 , PRICE_CLOSE , nb1 ) ;
    cci2 = iCCI ( NULL , TF_2 , CCI_Period_2 , PRICE_CLOSE , nb2 ) ;
    
   /* double cci[3];
    cci[0]=cci0;
    cci[1]=cci1;
    cci[2]=cci2;
    string s1="cci-0 *** "+DoubleToStr(cci[0],3);
    string s2="cci-1 *** "+DoubleToStr(cci[1],3);
    string s3="cci-2 *** "+DoubleToStr(cci[2],3);
    string str[3];
    str[0]=s1;
    str[1]=s2;
    str[2]=s3;
    color col=Lime;
     for(int y=0;y<3;y++)
     {ObjectCreate("textSignal"+y,OBJ_LABEL,0,0,0,0,0);    
      ObjectSet("textSignal"+y,OBJPROP_CORNER,1);
      ObjectSet("textSignal"+y,OBJPROP_XDISTANCE,35-25);
      ObjectSet("textSignal"+y,OBJPROP_YDISTANCE,y*(20)+20+8);
      if(cci[y]>=0)col=Lime;else col=Red;
      if(cci[y]>Level_0) col=Aqua;
      if(cci[y]<-Level_0) col=DarkViolet;
      ObjectSetText("textSignal"+y,str[y],15,"Tahoma",col);
     }
*/
    if ( cci0 > Level_0 & & cci1 > Level_1 & & cci2 > Level_2 ) { buf0 [ sh ] = 1 ;
    if ( per ! = Time [ 0 ] ) { per = Time [ 0 ] ;
    if ( sh < = ExtBars & & ExtBars ! = - 1 )
    Alert ( Symbol ( ) , Period ( ) , " " ,
                              TimeYear ( Time [ sh ] ) , "." ,
                              TimeDay ( Time [ sh ] ) , "." ,
                              TimeMonth ( Time [ sh ] ) , "; " ,
                              TimeHour ( Time [ sh ] ) , ":" ,
                              TimeMinute ( Time [ sh ] ) , " " ,
                              "Покупка" ) ; } }
    if ( cci0 < - Level_0 & & cci1 < - Level_1 & & cci2 < - Level_2 ) { buf0 [ sh ] = - 1 ;
    if ( per ! = Time [ 0 ] ) { per = Time [ 0 ] ;
    if ( sh < = ExtBars & & ExtBars ! = - 1 )
    Alert ( Symbol ( ) , Period ( ) , " " ,
                              TimeYear ( Time [ sh ] ) , "." ,
                              TimeDay ( Time [ sh ] ) , "." ,
                              TimeMonth ( Time [ sh ] ) , "; " ,
                              TimeHour ( Time [ sh ] ) , ":" ,
                              TimeMinute ( Time [ sh ] ) , " " ,
                              "Продажа" ) ; } }
  }
}
//+------------------------------------------------------------------+
 
sergeev >> :

bystop için şöyle:




Ve açık bir pozisyondan bekleyen bir emir nasıl verilir?

 
ArtY0m >> :

Ve açık bir pozisyondan bekleyen bir emir nasıl verilir?

İlk olarak, son açık pozisyonun açılış fiyatını programlı olarak belirlemeniz gerekir.

Bunu yapmak için acc kullanabilirsiniz. önceden hazırlanmış fonksiyon, -

PriceOpenLastPos() işlevi.
Bu fonksiyon, son açık pozisyonun açılış fiyatını döndürür. Dikkate alınacak pozisyonların seçimi harici parametreler tarafından belirlenir:
sy - Piyasa aracının adı. Bu parametreyi ayarlarsanız, işlev yalnızca belirtilen takımın konumlarını dikkate alacaktır. Varsayılan değer "" herhangi bir piyasa aracı anlamına gelir. NULL değeri, geçerli enstrüman anlamına gelir.
op - Ticaret işlemi, pozisyon türü. Geçerli değerler: OP_BUY, OP_SELL veya -1. Varsayılan değer -1, herhangi bir konum anlamına gelir.
mn - Konum Kimliği, MagicNumber. Varsayılan değer -1, herhangi bir tanımlayıcı anlamına gelir.
'KimIV'ten Faydalı Özellikler'

//-------

Kodun en sonuna işlevin kendisini ekleyin.

Ve BAŞLAT işlevinde, onu arayın ve ihtiyacınız olan son pozisyonun açılış fiyatını ayarlayın (alış veya satış), örneğin, -

double OpenPrice=FiyatOpenLastPos(NULL,OP_BUY, MAGIC) ;

 
rid >> :

İlk olarak, son açık pozisyonun fiyatını programlı olarak belirlemeniz gerekir.

Bunu yapmak için acc kullanabilirsiniz. önceden hazırlanmış fonksiyon, -

PriceOpenLastPos() işlevi.
Bu fonksiyon, son açık pozisyonun açılış fiyatını döndürür. Dikkate alınacak pozisyonların seçimi harici parametreler tarafından belirlenir:
sy - Piyasa aracının adı. Bu parametreyi ayarlarsanız, işlev yalnızca belirtilen takımın konumlarını dikkate alacaktır. Varsayılan değer "" herhangi bir piyasa aracı anlamına gelir. NULL değeri, geçerli enstrüman anlamına gelir.
op - Ticaret işlemi, pozisyon türü. Geçerli değerler: OP_BUY, OP_SELL veya -1. Varsayılan değer -1, herhangi bir konum anlamına gelir.
mn - Konum Kimliği, MagicNumber. Varsayılan değer -1, herhangi bir tanımlayıcı anlamına gelir.

'KimIV'ten Faydalı Özellikler'

//-------

Kodun en sonuna işlevin kendisini ekleyin.

Ve BAŞLAT işlevinde, onu arayın ve istenen son pozisyonun (alış veya satış) açılış fiyatını ayarlayın, örneğin, -

double OpenPrice=FiyatOpenLastPos(NULL,OP_BUY, MAGIC) ;

Çok teşekkürler!))

 

Göstergede, bir koşul karşılanırsa, bir metin dosyasına işaretli bir satır koymak istiyorum (ne olursa olsun, tarih ve saat diyelim).

Dosya oluşturulur, satır eklenir, ancak yalnızca gerçek zamanlı olarak. Tarih üzerinde çalışırken notlar almak istiyorum. Bunun nasıl yapılacağını bilen var mı?

Teşekkür ederim!





Neden: