Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 281

 
Integer:

Includere non è un'importazione.

È comprensibile. Sto importando le librerie. E l'inline è solo per inserire un pezzo di codice in qualche posto. Consente di risparmiare spazio nella scheda.

Integer:

Dovremmo provare a chiamare qualche funzione da un file che non sembra essere collegato. Quello che c'è scritto nei registri può non essere necessario, non vale la pena prestarvi attenzione.

Caricato queste librerie in un altro scoop, tutto funziona bene. Cioè, che le funzioni di quelle librerie funzionino. Ma c'è un punto. L'altro scoop, ho caricato queste librerie direttamente nello scoop. E in gufo, dove ora non è una sorta di bug sorto queste librerie all'interno di 1 delle librerie utilizzate. Come questo:

In sovok così nel cappello:

#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,
// ДРУГИЕ ВНЕШНИЕ ПАРАМЕТРЫ ЭКСПЕРТА

Così #include <hoz_Base@Include.mqh> è un'inclusione della libreria di base (dichiarazioni di variabili), e #include <hoz_Base@ListOfFunc.mqh> è già un'inclusione in cui sono prescritte funzioni importate di questa libreria di questo 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 stessa libreria hoz_Base@Library.ex4 richiede 3 librerie di terze parti per funzionare. Questi sono quelli che vengono importati all'inizio della libreria di base stessa:

//+---------------------------------------------------------------------------------------------------------------------------------------+
//|                                                                                                                  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

Capisco che se ci fosse un bug in una qualsiasi di quelle librerie che hoz_Base@Library.mq4 usa , la libreria di base non verrebbe caricata, e di conseguenza nessuna di quelle librerie verrebbe caricata. Infatti, al momento anche la prima linea di avvio non funziona. Come posso cercare la causa di questa situazione?
 

Ciao a tutti!

Ho avuto un'anomalia nel mio EA. Gli errori 138 e 129 stavano uscendo. Prezzi errati.

Domanda: Dato che l'EA non è un pips, ha avuto tutto il tempo per aprire il trade, soprattutto il prezzo ha chiaramente superato il livello di segnale ed è stato lì abbastanza a lungo, anche con le correzioni bid, ask.

L'ho eseguito nel tester, l'affare si è aperto. Come affrontare questo problema e perché si verifica (tutto andava bene prima, l'EA ha aperto gli accordi)?

Ho la sensazione che dopo l'elaborazione del segnale l'EA si sia bloccato e non abbia accettato ulteriori segnali o forse avrei dovuto ricaricare Metatrader dopo la recente build?

 

Buon pomeriggio!

Come (fuori dalla mia testa) dipingere sotto la linea principale del grafico tutta la parte inferiore con un colore e la parte superiore con un altro, se non ti dispiace, forse qualcuno ha qualche lavoro da fare?

 
_new-rena:

Buon pomeriggio!

Come (fuori dalla mia testa) dipingere sotto la linea principale del grafico tutta la parte inferiore con un colore e la parte superiore con un altro, se non ti dispiace, forse qualcuno ha qualche lavoro da fare?


Su uno screenshot mostra ciò che vuoi
 
ALXIMIKS:

su uno screenshot mostra ciò che vuoi

c'è un grafico dei prezzi - una linea. Sotto in un tono di blu, sopra in bianco (qualcosa di simile - principio)

 
ALXIMIKS:

su uno screenshot mostra quello che vuoi

Va bene, non preoccuparti, l'ho già fatto... Aspetta qui...

 
Forexman77:

Ciao a tutti!

Ho avuto un'anomalia nel mio EA. Gli errori 138 e 129 stavano uscendo. Prezzi errati.

Domanda: Dato che l'EA non è un pips, ha avuto tutto il tempo per aprire il trade, soprattutto il prezzo ha chiaramente superato il livello di segnale ed è stato lì abbastanza a lungo, anche con le correzioni bid, ask.

L'ho eseguito nel tester, l'affare si è aperto. Come affrontare questo problema e perché si verifica (tutto andava bene prima, l'EA apriva i trade)?

Ho la sensazione che dopo l'elaborazione del segnale l'EA si sia bloccato e non abbia reagito a ulteriori segnali o forse il Metatrader dovrebbe essere riavviato dopo l'ultima build?

Usa i prezzi attraverso MarketInfo(), non Ask e Bid. Per esempio così:

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

Nei vostri ordini commerciali, non usate Ask, ma pa, non Bid, ma pb.

Sarai felice

 
artmedia70:

Usa MarketInfo() invece dei prezzi Ask e Bid. Per esempio, così:

E negli ordini commerciali, sostituite pa, non Ask, e pb, non Bid.

E tu sarai felice


E qual è la differenza tra Ask e MarketInfo(Symbol(),MODE_ASK)?
 
evillive:
E qual è la differenza tra Ask e MarketInfo(Symbol(),MODE_ASK)?


Ask è una variabile, memorizzata nel computer, cambia quando si verifica il prossimo calcolo della funzione di avvio o quando viene aggiornata.

MarketInfo(Symbol(),MODE_ASK) - questo valore è preso dal server o da Ask?

 
evillive:
E qual è la differenza tra Ask e MarketInfo(Symbol(),MODE_ASK)?
Questa funzione prende i dati di prezzo più recenti. Cioè, quando lo si usa in funzioni di apertura di posizioni e immissione di ordini, non c'è bisogno di RefreshRates(). Ma dopo aver ricevuto alcuni errori dal server, che richiedono l'attesa o l'aggiornamento dei prezzi, è necessario aggiornare l'ambiente di trading utilizzando RefreshRates() e inviare una seconda richiesta.