[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 434

 

Ayuda )

1.Detección instantánea de una orden comercial recién abierta (no órdenes pendientes) orden (abierta manualmente y abierta con la ayuda de un EA) Si el sistema ha detectado una orden que no fue abierta anteriormente. entonces continúa en el número 2.

2. Cualquier tarea se ejecuta una sola vez, sólo para esta orden.

Cuando se abre una orden más, el sistema vuelve a funcionar desde el punto 1 hasta el punto 2.

¿Puede ayudar a alguien que es nuevo en la programación?

Por favor, ayuda. ¿Cómo podemos hacerlo? Identifico cada nueva orden abierta, con la tarea subsiguiente para 1-n veces, sólo para esta orden, y así para siempre, para cada nueva orden abierta.

Gracias.

Hay un esquema, pero no indexa los pedidos .

//+------------------------------------------------------------------+
//| 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);
}

 

Hola a todos.

¿Pueden decirme por qué este indicador no traza todas las barras, tengo que reorganizarlo para ver el gráfico?

//+------------------------------------------------------------------+
//|                                                Ср.отклонение.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);
  }
//+------------------------------------------------------------------+
Archivos adjuntos:
 
Roman.:
Chicos, ¿podéis decirme cómo sustituir en Excel la división (reconocimiento por el prog) de la parte fraccionaria de un número con una coma a un punto? Gracias por su ayuda.


Panel de control - Idiomas y normas regionales

Cambia la norma al inglés, por ejemplo: el punto y coma se convierte en un punto y aparte.
Resuelve los problemas de transferencia de datos y luego vuelve a cambiar a la norma

 
Roman.:
Chicos, ¿podéis decirme cómo sustituir en Excel la división (reconocimiento por el prog) de la parte fraccionaria de un número con una coma a un punto? Gracias por la ayuda.

La segunda opción es cambiar el separador en la configuración de Excel
 
abolk:


Panel de control - Idiomas según las normas regionales

Cambia la norma a, por ejemplo, inglés: la coma se convierte en un punto.
Resuelve los problemas de transferencia de datos y luego vuelve a cambiar a la norma


Gracias
 
sergeev:


la segunda opción es cambiar el separador en la propia configuración de Excel

Gracias... Ya lo he hecho por consejo del Presidente del Club... :-))) Cómo cambiar el separador en la configuración del propio excel, no lo he encontrado.
 
Roman.:

excel - no pude encontrarlo.
¿versión de excel?
 
sergeev:
¿versión de excel?


2003г
 
Roman.:

2003г

Servicio-Configuración-Internacional
 
sergeev:

Servicio-Configuración-Internacional

Sí, lo tengo, lo tengo. Gracias. También lo cambié allí.