Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 281

 
Integer:

Incluir no es una importación.

Es comprensible. Estoy importando bibliotecas. Y el inline es sólo para insertar un trozo de código en algún lugar. Ahorra espacio en el tablero.

Integer:

Debemos intentar llamar a alguna función desde un archivo que no parece estar conectado. Lo que está escrito en los registros puede no ser necesario, no vale la pena prestarle atención.

Cargado estas bibliotecas en otra primicia, todo funciona bien. Es decir, que las funciones de esas bibliotecas funcionen. Pero hay un punto. La otra primicia, cargué estas bibliotecas directamente en la primicia. Y en el búho, donde ahora no es algún tipo de error surgió estas bibliotecas dentro de 1 de las bibliotecas utilizadas. Así:

En sovok así en el sombrero:

#property copyright "hoz"
#property link      ""

#include <hoz_Base@Include.mqh>
#include <hoz_Base@ListOfFunc.mqh>
#include <hoz_MakeListOfInstruments@Include.mqh>
#include <hoz_MakeListOfInstruments@ListOfFunc.mqh>

extern string ___H1 = " ________ Параметры общие _________ ";

extern string ___H3 = " _______ Параметры фильтров _______ ";

extern string ___H4 = " __ Параметры торговых операций ___ ";
extern double  i_Lot = 0.1,
               i_KLot = 2,
               i_SL = 0,
// ДРУГИЕ ВНЕШНИЕ ПАРАМЕТРЫ ЭКСПЕРТА

Así que #include <hoz_Base@Include.mqh> es una inclusión de biblioteca básica (declaraciones de variables), y #include <hoz_Base@ListOfFunc.mqh> ya es una inclusión en la que se escriben funciones importadas de esta biblioteca de este formato:

#import "hoz_Base@Library.ex4"
    void fInitBase (string fs_SymbolList, string fs_MagicList, string fs_Delimiter = ",");
    double ND (double v);
    string DToS (double v);
    double SToD (string v);
    int SToI (string v);
    datetime SToT (string v);
    double NDByMinLotPres(double v);
// ДРУГИЕ ФУНКЦИИ
    void fShiftIndex (double& ar_MAS[], bool fb_Conditions = false);
    void fSort_InDecreasingSequance (int& fia_INDEX[], double fda_Value[]);
    void fCreat_ArrayGV (string& fsa_Base[], string fsa_Add[]);
#import

La propia biblioteca hoz_Base@Library.ex4 requiere 3 bibliotecas de terceros para funcionar. Estos son los que se importan al principio de la propia biblioteca base:

//+---------------------------------------------------------------------------------------------------------------------------------------+
//|                                                                                                                  hoz_Base@Library.mq4 |
//|                                                                                                                                   hoz |
//|                                                                                                                                       |
//+---------------------------------------------------------------------------------------------------------------------------------------+

#property copyright "hoz"
#property link      ""
#property library

//+---------------------------------------------------------------------------------------------------------------------------------------+
//| Библиотека базовых функций.                                                                                                           |
//+---------------------------------------------------------------------------------------------------------------------------------------+
// ================================================== Включения и импорт внешних модулей =================================================+
#include <hoz_Base@Include.mqh>
//+---
#import "hoz_LoggingToAnyWere@library.ex4"
    void fWrite_Log (string fs_Txt);
    void fPrint (string fs_Text);
#import
//+---
#import "hoz_HandlingWithErrorS@library.ex4"
    bool fErrorHandling (int fi_Error, bool& fb_InvalidSTOP);
    void fReConnect();
    string fErrorToString (int fi_Error);
    string fErrorDescription (int fi_Error);
#import
//+---
#import "hoz_ReturningSomeInfo@library.ex4"
    string fGet_NameOP (int fi_Type);
    string fGet_NameTF (int fi_TF = 0);
#import

Entiendo que si hubiera un error en alguna de estas bibliotecas que utiliza hoz_Base@Library.mq4, la biblioteca base no se cargaría, y en consecuencia ninguna de esas bibliotecas se cargaría. De hecho, en este momento ni siquiera la primera línea de arranque funciona. ¿Cómo puedo buscar la causa de esta situación?
 

Hola a todos.

Tuve un fallo en mi EA. Salían los errores 138 y 129. Precios incorrectos.

Pregunta: Como el EA no es un pips, tuvo mucho tiempo para abrir la operación, especialmente el precio pasó claramente el nivel de la señal y estuvo allí el tiempo suficiente, incluso con correcciones de bid, ask.

Lo he ejecutado en el probador, el trato abierto. ¿Cómo tratar este problema y por qué se produce (todo estaba bien antes, el EA abrió las operaciones)?

Tengo la sensación de que después del procesamiento de la señal el EA se congeló y no aceptó más señales o tal vez debería haber recargado Metatrader después de la reciente construcción?

 

¡Buenas tardes!

¿Cómo (de memoria) pintar debajo de la línea de la carta principal toda la parte inferior con un color y la parte superior con otro, si no te importa, tal vez alguien tiene algún trabajo que hacer?

 
_new-rena:

¡Buenas tardes!

¿Cómo (de memoria) pintar debajo de la línea de la carta principal toda la parte inferior con un color y la parte superior con otro, si no te importa, tal vez alguien tiene algún trabajo que hacer?


En una captura de pantalla muestra lo que quieres
 
ALXIMIKS:

en una captura de pantalla muestre lo que quiere

hay un gráfico de precios - una línea. Por debajo en un tono de azul, por encima en blanco (algo parecido - principio)

 
ALXIMIKS:

en una captura de pantalla mostrar lo que quiere

De acuerdo, no te preocupes, ya lo hice... Espera aquí...

 
Forexman77:

Hola a todos.

Tuve un fallo en mi EA. Salían los errores 138 y 129. Precios incorrectos.

Pregunta: Como el EA no es un pips, tuvo mucho tiempo para abrir la operación, sobre todo el precio pasó claramente el nivel de la señal y estuvo allí el tiempo suficiente, incluso con correcciones de bid, ask.

Lo he ejecutado en el probador, el trato abierto. ¿Cómo tratar este problema y por qué se produce (todo estaba bien antes, el EA abrió las operaciones)?

Tengo la sensación de que después del procesamiento de la señal el EA se congeló y no reaccionó a más señales o tal vez el Metatrader debe ser reiniciado después de la última construcción?

Utiliza los precios a través de MarketInfo(), no de Ask y Bid. Por ejemplo, así:

double pa=MarketInfo(Symbol(),MODE_ASK);
double pb=MarketInfo(Symbol(),MODE_BID);

En sus órdenes comerciales, no utilice Ask, sino pa, ni Bid, sino pb.

Serás feliz

 
artmedia70:

Utilice MarketInfo() en lugar de los precios de compra y venta. Por ejemplo, así:

Y en las órdenes comerciales, sustituye pa, no Ask, y pb, no Bid.

Y serás feliz


¿Y cuál es la diferencia entre Ask y MarketInfo(Symbol(),MODE_ASK)?
 
evillive:
¿Y cuál es la diferencia entre Ask y MarketInfo(Symbol(),MODE_ASK)?


Ask es una variable, almacenada en el ordenador, que cambia cuando se produce el siguiente cálculo de la función de inicio o cuando se actualiza.

MarketInfo(Symbol(),MODE_ASK) - ¿se toma este valor del servidor o de Ask?

 
evillive:
¿Y cuál es la diferencia entre Ask y MarketInfo(Symbol(),MODE_ASK)?
Esta función toma los datos de precios más recientes. Es decir, cuando se utiliza en funciones de apertura de posiciones y colocación de órdenes, no es necesario en RefreshRates(). Pero después de recibir algunos errores del servidor, que requieren esperar o actualizar los precios, es necesario refrescar el entorno comercial utilizando RefreshRates() y enviar una segunda solicitud.