[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 434

 

Yardım)

1. Yeni açılan alım satım (beklemede olmayan emirler) emirlerinin anında tespiti (Manuel olarak açılan ve danışman yardımı ile açılan emirler) Sistem daha önce açılmamış bir emir tanımlamışsa. sonra 2 numarada devamı var.

2. Bazı görevler, sadece bu sipariş için sadece 1 kez yürütülüyor.

Bir sipariş daha açıldıktan sonra sistem tekrar 1. noktadan 2. noktaya kadar çalışır.

Programlamada yeni başlayanlara yardım edebilir misiniz?

Lütfen yardım et. Bu nasıl yapılabilir? Her yeni açık siparişin tanımlanması, ardından sadece bu sipariş için ilk kez bir görev ve her yeni açılan sipariş için sonsuza kadar böyle devam eder.

Teşekkür ederim.

Bir taslak var, ancak siparişleri tanımlamıyor.

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{


//----

for (int k=OrdersTotal()-1;k>=0;k--)//Начинаем перебор всех открытых ордеров начиная с конца
{
RefreshRates();//Обновляем котировки, необходимо при модификации или закрытии ордеров
if (OrderSelect(k,SELECT_BY_POS,MODE_TRADES)==true&&OrderSymbol()==Symbol())//Выбираем ордер с номером из цикла, и проверяем, совпадает ли символ ордера с текущим
{
int cmd=OrderType();//В переменной cmd будем хранить тип ордера
if(cmd>1)//Нас интересуют только отложенные ордеры
{
//Что-то делаем
}
if (cmd==OP_BUY)//А вдруг на покупку ордер?
{
Alert (GetLastError());
}
if (cmd==OP_SELL)//Или на продажу?
{
Alert (GetLastError());
}
}
}
//----
return(0);
}

 

Herkese selam!

Bu göstergenin neden her bir çubuğu kendi başına çizmediğini söyleyebilir misiniz, grafiği görmek için yeniden düzenlemeniz mi gerekiyor?

 //+------------------------------------------------------------------+
//|                                                Ср.отклонение.mq4 |
//|                                                Copyright © 2011. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2011, Dimon"
#property  link       "todem5@gmail.com"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 1
#property  indicator_color1  Lime
#property  indicator_level1   100
#property  indicator_style1   1
#property  indicator_level2   20
#property  indicator_style2   1
//#property  indicator_color2  Red
#property  indicator_width1   2
//---- indicator parameters
//---- indicator buffers
extern int period= 24 ;
double      MacdBuffer[];
double      SignalBuffer[];
int tf, k;
string S;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   tf= Period ();
   S= Symbol ();
//---- drawing settings
   SetIndexStyle( 0 , DRAW_LINE );
   //SetIndexStyle(1,DRAW_LINE);
   
   IndicatorDigits( Digits + 1 );
//---- indicator buffers mapping
   SetIndexBuffer ( 0 ,MacdBuffer);
   //SetIndexBuffer(1,SignalBuffer);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName( "Ср.отклонение.: " +period+ ", в %: " );
   SetIndexLabel( 0 , "MACD" );
   //SetIndexLabel(1,"Signal");
//---- initialization done
      
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int start()
  {
   if (!IsOptimization() && !IsTesting() && !IsVisualMode()) {
   k=WindowFind( "Ср.отклонение.: " +period+ ", в %: " );
   ObjectDelete ( "OrdCr2" );
   ObjectCreate ( "OrdCr2" , OBJ_LABEL , k, 0 , 0 );
   ObjectSet( "OrdCr2" , OBJPROP_CORNER , 2 );
   ObjectSet( "OrdCr2" , OBJPROP_XDISTANCE , 5 );
   ObjectSet( "OrdCr2" , OBJPROP_YDISTANCE , 22 );
   ObjectSet( "OrdCr2" , OBJPROP_COLOR , Red );
   ObjectSetText( "OrdCr2" , "Ср.откл.1" , 10 , "Arial Black" , Moccasin );
   }      
   double sum, f;
   int limit;
   int P;
   if ( Digits == 5 ) {P= 100000 ;}
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if (counted_bars> 0 ) counted_bars--;
   limit= Bars -counted_bars;
//---- macd counted in the 1-st buffer
   for ( int i= 0 ; i<limit-period; i++){
      sum= 0 ;
       for ( int k=i+ 1 ;k<=i+period;k++){
       if (iHigh( Symbol (),tf,k)>iLow( Symbol (),tf,k)) {f=(iHigh( Symbol (),tf,k)-iLow( Symbol (),tf,k));}
       if (iHigh( Symbol (),tf,k)<iLow( Symbol (),tf,k)) {f=(iLow( Symbol (),tf,k)-iHigh( Symbol (),tf,k));}
      sum=sum+(f*P);
      }   
      MacdBuffer[i]=sum/ 24 ; 
      }
   
   return ( 0 );
  }
//+------------------------------------------------------------------+
Dosyalar:
 
Roman. :
Çocuklar, Excel'de bir sayının kesirli kısmının ayrılmasını (program tanıma) noktalı virgülle nasıl değiştireceğimi söyleyin? Yardımın için teşekkürler.


Kontrol Paneli - Bölgesel Diller

Standardı örneğin İngilizce olarak değiştirirsiniz - virgül nokta olur.
Veri aktarımıyla ilgili sorunları çözün - ardından standardı geri verin

 
Roman. :
Çocuklar, Excel'de bir sayının kesirli kısmının ayrılmasını (program tanıma) noktalı virgülle nasıl değiştireceğimi söyleyin? Yardımın için teşekkürler.

ikinci seçenek, ayırıcıyı Excel'in kendi ayarlarında değiştirmektir.
 
abolk :


Kontrol Paneli - Bölgesel Diller

Standardı örneğin İngilizce olarak değiştirirsiniz - virgül nokta olur.
Veri aktarımıyla ilgili sorunları çözün - ardından standardı geri verin


Sayesinde
 
sergeev :


ikinci seçenek, ayırıcıyı Excel'in kendi ayarlarında değiştirmektir.

Teşekkürler... Kulüp başkanının tavsiyesi üzerine yaptım zaten... :-))) Excel'in kendi ayarlarında ayırıcı nasıl değiştirilir - bulamadım.
 
Roman. :

Excel - bulamıyorum.
excel versiyonu?
 
sergeev :
excel versiyonu?


2003
 
Roman. :

2003

Servis-Parametreler-Uluslararası
 
sergeev :

Servis-Parametreler-Uluslararası

Evet, anladım. Sayesinde. Orada da değişti.
Neden: