Errores, fallos, preguntas - página 356

 
Im_hungry:

He escrito algo similar a esto, pero deberías etiquetar las matrices de manera diferente - (es poco probable que ayude, pero al menos

esto es mejor). cámbialo:

a estas cadenas.

También cambiar:

a eso.

No así. Hace varias construcciones, los antiguos métodos Type() de las clases CPositionInfo, COrderInfo y CDealInfo de la biblioteca estándar han sido sustituidos por los métodos PositionType(), OrderType() y DealType(). Por lo tanto, estas funciones deben ser corregidas en los programas MQL5 previamente escritos, de lo contrario no funcionarán correctamente.

Yo reescribiría tu código así:

#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>

input int TriX_PARAM=14;
input int TriX_PARAM_Close=50;

double TriX[];
double TriX_Close[];
int TriXHandle;
int TriXHandle_Close;
CTrade mytrade;
CPositionInfo myposition;
CSymbolInfo mysymbol;
COrderInfo myorder;
int OnInit()
  {

   TriXHandle=iTriX(NULL,PERIOD_CURRENT,TriX_PARAM,PRICE_WEIGHTED);
   TriXHandle_Close=iTriX(Symbol(),PERIOD_CURRENT,TriX_PARAM_Close,PRICE_WEIGHTED);
   ArraySetAsSeries(TriX_Close,true);
   ArraySetAsSeries(TriX,true);
   return(0);
  }

void OnTick()
  {
   if(myposition.Select(_Symbol))
    { 
     CopyBuffer(TriXHandle_Close,0,0,4,TriX_Close);
     if(myposition.PositionType()==POSITION_TYPE_BUY) 
//Закрываем позицию
     {
      if(TriX_Close[1]<TriX_Close[2] && TriX_Close[2]>TriX_Close[3]) 
        mytrade.PositionClose(_Symbol);
     } 
     else  
      if(TriX_Close[1]>TriX_Close[2] && TriX_Close[2]<TriX_Close[3]) 
        mytrade.PositionClose(_Symbol);
    }
   else
//Открываем позицию
     {
      CopyBuffer(TriXHandle,0,0,4,TriX);
      if(TriX[1]>TriX[2] && TriX[2]<TriX[3]) mytrade.Buy(0.1);
      if(TriX[1]<TriX[2] && TriX[2]>TriX[3]) mytrade.Sell(0.1);
     }
  }
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
Rosh:
Todas las ventanas de la carta están numeradas desde cero. 0 - ventana del gráfico principal, 1 - ventana del primer indicador, que se muestra en una ventana separada. Y así sucesivamente.

No hay dudas al respecto. Pero, ¿dónde están los valores de mínimo y máximo, y por qué aparecen sólo después de las manipulaciones con el gráfico?
 
KffAlex:
No hay duda de ello. Pero, ¿dónde están los valores mínimos y máximos, y por qué sólo aparecen después de manipular el gráfico?
Será mejor que escriba al servicio de atención al cliente. Lo más probable es que se trate de un error.
 

Por favor, aclárenme qué significa el error

internal error #108             0       0

al compilar el script?

 
alsu:

Por favor, aclárenme qué significa el error

al compilar el script?

Por lo que tengo entendido es

108 Nombre inadecuado para #define

 
Interesting:

Según tengo entendido.

108 Nombre inadecuado para #define

La cuestión es que no hay definiciones ni inlusiones en el guión.

 
 
alsu:

la cosa es que no hay definiciones ni inlusiones en el guión.

El guión contiene tanto
#include
и
#define
 
alsu:

A continuación, transfiera bloque a bloque del script a otro normalmente compilado. y se encontrará con una línea defectuosa.

Escribe lo que era.

 
sergeev:

luego transferir bloque a bloque del script a otro script normalmente compilado. y se encontrará con una línea defectuosa.

Por favor, hazme saber qué es.

Lo hizo simple.

He comentado /* */ todo Cuerpo de la función OnStart() - el error se mantuvo. Incluso, después de reiniciar la máquina.

Repito, nada de inludes o defines, nada a nivel global, incluyendo variables externas. No quiero reinstalar el terminal todavía))

Desarrolladores, ¡¡¡Ha!!! ¿Qué significa el error interno #108?????