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

 

Düzeltmeme yardım et, standart stockcast, düzgün çalışmayan bir uyarı ekledi , hatanın nerede olduğunu bulamıyorum....

teşekkürler

 //+------------------------------------------------------------------+
//|                                                   Stochastic.mq4 |
//|                      Copyright © 2004, MetaQuotes Software Corp. |
//+------------------------------------------------------------------+

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red
#property  indicator_width1 1
#property  indicator_width2 1
#property indicator_level1 20
#property indicator_level2 50
#property indicator_level3 80
#property indicator_levelcolor DimGray
//---- input parameters
//+------------------------------------------------------------------+
extern bool Alerts  = true;
//+------------------------------------------------------------------+
extern int AlertBar = 1 ; 
//+------------------------------------------------------------------+
extern int KPeriod  = 5 ;
//+------------------------------------------------------------------+
extern int DPeriod  = 2 ;
//+------------------------------------------------------------------+
extern int Slowing  = 3 ;
//+------------------------------------------------------------------+
extern int MAMethod = 3 ; // 0=SMA,1=EMA,2=SSMA,3=LWMA
//+------------------------------------------------------------------+
//-------------------------------------------------------------------+
//-----
datetime LastAlertTime = - 333 ;
//---- Buffers
double MainBuffer[];
double SignalBuffer[];
double HighesBuffer[];
double LowesBuffer[];
//----
int     MAMode;
string strMAType;
//----
int draw_begin1= 0 ;
int draw_begin2= 0 ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
   string short_name;
//---- 2 additional buffers are used for counting.
   IndicatorBuffers ( 4 );
//---- indicator lines
   SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID , 1 );
   SetIndexBuffer ( 0 ,MainBuffer);
   SetIndexStyle ( 1 , DRAW_LINE , STYLE_SOLID , 1 );
   SetIndexBuffer ( 1 ,SignalBuffer);
//----
   SetIndexBuffer ( 2 ,HighesBuffer);
   SetIndexBuffer ( 3 ,LowesBuffer);
//----
   switch (MAMethod)
  {
     case 1 :  strMAType= "EMA" ;  MAMode= MODE_EMA ;   break ;
     case 2 :  strMAType= "SMMA" ; MAMode= MODE_SMMA ; break ;
     case 3 :  strMAType= "LWMA" ; MAMode= MODE_LWMA ; break ;
     default : strMAType= "SMA" ;  MAMode= MODE_SMA ;   break ;
  }
//---- name for DataWindow and indicator subwindow label
  short_name= "Stochastic (" +KPeriod+ "," +DPeriod+ "," +Slowing+ "," +strMAType+ ")" ;
   IndicatorShortName (short_name);
   SetIndexLabel ( 0 ,short_name);
   SetIndexLabel ( 1 , "Signal" );
//----
  draw_begin1=KPeriod+Slowing;
  draw_begin2=draw_begin1+DPeriod;
   SetIndexDrawBegin ( 0 ,draw_begin1);
   SetIndexDrawBegin ( 1 ,draw_begin2);
//----
   return ( 0 );
}
//+------------------------------------------------------------------+
//| Stochastic oscillator                                            |
//+------------------------------------------------------------------+
int start()
{
   int i,k;
   int counted_bars= IndicatorCounted ();
   double price;
//----
   if ( Bars <=draw_begin2) return ( 0 );
//---- initial zero
   if (counted_bars< 1 )
  {
     for (i= 1 ;i<=draw_begin1;i++) MainBuffer[ Bars -i]= 0 ;
     for (i= 1 ;i<=draw_begin2;i++) SignalBuffer[ Bars -i]= 0 ;
  }
//---- minimums counting
  i= Bars -KPeriod;
   if (counted_bars>KPeriod) i= Bars -counted_bars- 1 ;
   while (i>= 0 )
  {
     double min= 1000000 ;
    k=i+KPeriod- 1 ;
     while (k>=i)
    {
      price=Low[k];
       if (min>price) min=price;
      k--;
    }
    LowesBuffer[i]=min;
    i--;
  }
//---- maximums counting
  i= Bars -KPeriod;
   if (counted_bars>KPeriod) i= Bars -counted_bars- 1 ;
   while (i>= 0 )
  {
     double max=- 1000000 ;
    k=i+KPeriod- 1 ;
     while (k>=i)
    {
      price=High[k];
       if (max<price) max=price;
      k--;
    }
    HighesBuffer[i]=max;
    i--;
  }
//---- %K line
  i= Bars -draw_begin1;
   if (counted_bars>draw_begin1) i= Bars -counted_bars- 1 ;
   while (i>= 0 )
  {
     double sumlow= 0.0 ;
     double sumhigh= 0.0 ;
     for (k=(i+Slowing- 1 );k>=i;k--)
    {
      sumlow+=Close[k]-LowesBuffer[k];
      sumhigh+=HighesBuffer[k]-LowesBuffer[k];
    }
     if (sumhigh== 0.0 ) MainBuffer[i]= 100.0 ;
     else MainBuffer[i]=sumlow/sumhigh* 100 ;
    i--;
  }
//---- last counted bar will be recounted
   if (counted_bars> 0 ) counted_bars--;
   int limit= Bars -counted_bars;
//---- signal line is simple movimg average
   for (i= 0 ; i<limit; i++)
  SignalBuffer[i]= iMAOnArray (MainBuffer, Bars ,DPeriod, 0 ,MAMethod,i);
//+------------------------------------------------------------------+ 
   if (Alerts)
  {
     if (AlertBar >= 0 && Time[ 0 ] > LastAlertTime)
    {
       if (MainBuffer[i+AlertBar] > SignalBuffer[i+AlertBar] && MainBuffer[i+AlertBar+ 1 ] <= SignalBuffer[i+AlertBar+ 1 ])
      {
         Alert ( "Stochastic BULL! " , Symbol (), " TF: " , Period ());
      }
       if (MainBuffer[i+AlertBar] < SignalBuffer[i+AlertBar] && MainBuffer[i+AlertBar+ 1 ] >= SignalBuffer[i+AlertBar+ 1 ])
      { 
         Alert ( "Stochastic BEAR! " , Symbol (), " TF: " , Period ());
      }
    }
    LastAlertTime = Time[ 0 ];
  }
//----
   return ( 0 );
}
//+------------------------------------------------------------------+
 

Çoklu MA yapmak istiyorum. Onlar. 2 MA'lar çizelgede görünür olmalıdır - biri mevcut enstrümandan diğeri ikinci enstrümandan:

Soru, onları birbirine bağlamaktan doğar, çünkü Her enstrümanın kendi volatilitesi ve çok sayıda noktası vardır. Aklıma mantıklı bir şey gelmiyor... Yardım edin! :)

 
Cmu4 :

Çoklu MA yapmak istiyorum. Onlar. 2 MA'lar çizelgede görünür olmalıdır - biri mevcut enstrümandan diğeri ikinci enstrümandan:

Soru, onları birbirine bağlamaktan doğar, çünkü Her enstrümanın kendi volatilitesi ve çok sayıda noktası vardır. Aklıma mantıklı bir şey gelmiyor.... Yardım et! :)

Bir alt pencere ile, umarım sorun yaratmaz.

Göreve bağlı, MA'yı her iki çizelgede de büyük bir periyotla almak ve onu temel almak mümkündür.

örneğin, çalışma MA periyodu 12'dir. Ana sembol için olduğu gibi çizin.

Diğerleri için MA 12 ile 60 arasındaki farkı buluyoruz, bu fark katsayı ile çarpılarak ana sembolün MA 60'ına ekleniyor.

 
artmedia70 :

Ve açıklığa kavuşturmak için? Açık olanlardan (piyasada) ilkini mi yoksa zaten kapalı olanı mı seçin? Peki ya ilk pozisyon üç yıl önce açılmışsa? O seçilmeli mi ?

Genel olarak, neden hepsi bu?

Açıktan ilkini seçin.

Tüm bunlar, açık pozisyonlar arasında ilk açık pozisyon ile son açık pozisyon arasındaki noktalardaki mesafeyi kontrol etmek için gereklidir.

 
forexnew :
IsConnected işlevi kullanılarak denendi ( ) - boşuna. Kim mantıklı bir şey tavsiye edecek?

IsTradeAllowed()'ın başka ne döndürdüğünü görebilir mi?

Lütfen yardım et. Son noktadan itibaren N çubuk ilerideki çubuklara bağlı iki noktaya dayalı eğilim çizgileri oluşturmaya çalışıyorum. Onlar. gelen - birinci ve ikinci noktaların zaman fiyatı ve N ilerideki çubuk sayısıyla ifade edilir (ışın bayrağı = yanlış). İkinci noktanın mevcut çubuk 0'dan 1 numaralı çubukta olması gerekiyorsa ve ondan 10 çubuk ileri çekmem gerekiyorsa, gelecekten bir çubuğun zamanını ve fiyatını nasıl hesaplayabilirim?

 

Bana yardım et lütfen.

Yüksek [3] zamanı nasıl alınır?

 
alex11230 :

Bana yardım et lütfen.

Yüksek [3] zamanı nasıl alınır?


zaman[3]
 
Roll :

Denemek:
Teşekkürler :)
 

Nasıl resim yapılır:

/

dizide mi?

Örneğin:

string path=TerminalPath()+"/logs/"+tekTime+".log";

bir hata veriyor ve "/" eğik çizgisini kaldırırsanız

string path=TerminalPath()+"günlükler"+tekTime+".log";

- hata yok.