[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 408

 
Zhunko:

È difficile dire di quello assegnato. Bisognerebbe chiedere ai Metakbot.

Ho preso subito in parola Victor, ma... per fugare i dubbi ho scritto solo alle meta-citazioni.

Zhunko:

Ho fatto bloccare il mio conto reale in MRC a causa della frequente apertura e aggiornamento dei grafici. Questa non è una funzione MQL4, ma un visualizzatore di grafici interno

Cosa intendi per " aprire frequentemente un grafico "? Capisco cosa intendi per aggiornare le variabili dell'ambiente di mercato, ma non capisco cosa intendi per aprire e aggiornare un grafico...

Zhunko:

Forse, per esempio, MarketInfo() accede al server o riceve solo una parte dei dati dalla panoramica del mercato.

Ho scritto al supporto, scriverò qui non appena mi risponderanno!
 
Andrew245:

L'avevo intuito, ma non riesco a trovarli, questi parametri di stop loss
https://docs.mql4.com/ru/trading/OrderSend
 

Una volta ho fatto una domanda sull'uso delle biblioteche. Però mi sono un po' confuso.

Da quanto ho capito, la libreria è un insieme di funzioni con codice, che non ricordo esattamente come si chiama, "chiuso", cioè significa che nel processo il codice della funzione di libreria non è influenzato da nulla dall'esterno.

È logico che quando tutte le funzioni di uso frequente e non solo sono spostate fuori dall'EA, è molto conveniente. Ma allora perché abbiamo bisogno degli inludi? Dopo tutto, le biblioteche funzionano senza di loro. Quindi le inclusioni non sono necessarie? Chi li usa?

 
pako:

Il 10% all'anno è una cosa buona o cattiva?

Beh, si dice sempre che la cosa principale è mantenere la curva di equilibrio piatta, e si possono aumentare i profitti con MM. O non è così?
 
Dmido:

Beh, si dice sempre che la cosa principale è mantenere la curva di equilibrio piatta, e per aumentare i profitti si può usare MM. O non è così?


Cerca di aumentare

se il kolyan non viene.

 
TarasBY:
Il giorno corrente inizia all'inizio della barra D1 corrente (iTime (NULL, PERIOD_D1, 0)), ma non state cercando modi semplici! :)))


non funziona.

iTime (NULL, PERIOD_D1, 0) stampa 137082240

e inserito nella funzione stampa tutta la storia disponibile dei trade, ma non i trade per oggi.....

GetProfitFromDateInCurrency(NULL,-1,-1,(iTime (NULL, PERIOD_D1, 0))); 
видимо правильнее будет GetProfitFromDateInCurrency(NULL,-1,-1,(TimeCurrent()-iTime (NULL, PERIOD_D1, 0)));   НО И ТУТ РЕЗУЛЬТАТ ВСЕ СДЕЛКИ, ВМЕСТО СЕГОДНЯШНИХ
 
lottamer:


non funziona.

iTime (NULL, PERIOD_D1, 0) stampa 137082240

e inserito nella funzione stampa tutta la storia delle transazioni disponibili, non le transazioni di oggi.....

Se usate GetProfitFromDateInCurrency() (originale - questo è IMPORTANTE: non so cosa dovete aver ottenuto nella vostra versione), allora la funzione deve essere chiamata così:
GetProfitFromDateInCurrency (Symbol(), -1, -1, iTime (NULL, PERIOD_D1, 0));

e la funzione restituirà un profitto sugli ordini chiusi dall'inizio del giorno corrente.

E TUTTE le assurdità del codice sono catturate tramite Print().

 
hoz:
Cosa intendi per "apertura frequente del grafico"? Capisco l'aggiornamento delle variabili dell'ambiente di mercato, ma non capisco l'apertura e l'aggiornamento del grafico...
Quando si apre e si aggiorna un grafico ci sono richieste di nuovi dati sul server. Alcune avide società di brokeraggio preferiscono non spendere i loro soldi in server più potenti e in un canale più ampio, ma spenderli nelle loro tasche. Devono limitare il numero di richieste dal terminale in modo che un server debole non venga "bloccato". MRC ha solo 2000 richieste al giorno. Questo è 10 volte meno del numero dei loro strumenti moltiplicato per il numero di TF, senza contare le richieste di trading.
hoz:

Una volta ho fatto una domanda sull'uso delle biblioteche. Però mi sono un po' confuso.

Da quanto ho capito, la libreria è un insieme di funzioni con codice, che non ricordo esattamente come si chiama, "chiuso", cioè significa che nel processo il codice della funzione di libreria non è influenzato da nulla dall'esterno.

È logico che quando tutte le funzioni di uso frequente e non solo sono spostate fuori dall'EA, è molto conveniente. Ma allora perché abbiamo bisogno degli inludi? Dopo tutto, le biblioteche funzionano senza di loro. Quindi le inclusioni non sono necessarie? Chi li usa?

Le inclusioni in MQL4 aiutano ad organizzare il codice. Per esempio, ecco come appare un indicatore per 3000 linee nel mio articolo:

#property indicator_separate_window

#include <stdlib.mqh>
#include <stderror.mqh>
#include <ServicesMT4.mqh>
#include <Spectrum.mqh>
#include <TimeFrames.mqh>
#include <GeneralFunctions.mqh>
#include <DynamicArray2.mqh>
#include <SPECTRUM_IND_Macros.mq4>
#include <SPECTRUM_IND_Preset_Buffers.mq4>
#include <SPECTRUM_IND_Extern_Variable.mq4>
#include <SPECTRUM_IND_Global_Variable.mq4>
#include <SPECTRUM_IND_Functions_Project.mq4>

void init()
 {
  int    i = 0;
  string i_sName = StringSubstr(WindowExpertName(), 0, StringLen(WindowExpertName()) - 8);
  g_nCounterStart = 0;
  #include <SPECTRUM_IND_Check_Param.mq4>
  if (Postfix == "") g_sNameIndicator = i_sName + g_sPostfix;
  else g_sNameIndicator = i_sName + g_sPostfix + Postfix + " ";
  g_sNameObject = g_sNameIndicator + "Derivative ";
  g_sNameLine = g_sNameIndicator + "Line ";
  g_sNameSpectrum = g_sNameIndicator;
  IndicatorShortName(g_sNameIndicator);
  #include <SPECTRUM_IND_Extern_Variables_In_Array.mq4>
  #include <SPECTRUM_IND_Buffers.mq4>
  ServiceRefreshChart(WindowHandle(Symbol(), 0), 1000);
 }

void deinit()
 {
  ObjectsDeleteAll(g_nWindow);
  DeleteObject();
 }

void start()
 {
  if (g_bStop) return;
  #include <SPECTRUM_IND_Start_Variable.mq4>
  #include <SPECTRUM_IND_Start_Initialize.mq4>
  #include <SPECTRUM_IND_Optimization.mq4>
  #include <SPECTRUM_IND_Calc_Filters.mq4>
  #include <SPECTRUM_IND_Calc_Last_Derivative.mq4>
  #include <SPECTRUM_IND_Show_Lines.mq4>
  #include <SPECTRUM_IND_Show_Sum.mq4>
  g_nBegin = s_nBegin;
  g_nTemp_SizeChart = s_nSizeChart;
  g_tLastTime = iTime(NULL, g_nPeriod, 0);
  ArrayCopy(g_adTemp_PriceBeginBar, s_adPriceBeginBar);
 }
Le 5 linee di operazioni simili si accumulano, o un algoritmo separato, o qualche altro criterio del gruppo e può essere allocato in un file separato. Tuttavia, è meglio guardare il codice fino a 200 linee piuttosto che 10000 linee in una volta sola. Vi stancherete di metterlo a punto. In MQL4, è meglio evitare le chiamate di funzione. Soprattutto, nei loop. Se possibile, è meglio esporre la funzione. Il codice funzionerà molto più velocemente. Le inclusioni sono di grande aiuto qui.

Sfortunatamente, il compilatore non permette di usare un'inclusione più di una volta in un modulo. Questo è di solito un modo per risparmiare sul codice ripetitivo.

 
hoz:
Ho subito preso Victor in parola, ma... per fugare i dubbi ho appena scritto alle meta-citazioni.
...

Victor ha assolutamente e completamente ragione. Quella richiesta al server, che arriva quando si apre il grafico, non è una richiesta della funzione emulatrice, ma di un'azione manuale dell'utente.

 
Integer:

Victor ha assolutamente e completamente ragione. La richiesta al server, che arriva quando si apre il grafico, non è una richiesta da una funzione emcool, ma da un'azione manuale dell'utente.

La richiesta del grafico è simile a quella di RefreshRates(). Non ho dubbi che si riferisca al server. Detto questo, RefreshRates() non è una funzione di trading.

Dovrò chiedere ai Metacvot.

Motivazione: