С этой статьи я начинаю еще одну серию, относящуюся к разработке графических интерфейсов. На текущий момент нет ни одной библиотеки кода, которая позволяла бы легко и быстро создавать качественные графические интерфейсы в MQL-приложениях. Я имею в виду графические интерфейсы, к которым мы все привыкли в известных операционных системах. Цель проекта — дать конечному пользователю такую возможность и научить это делать с помощью моей библиотеки. Я постарался сделать ее максимально понятной в изучении, с возможностями дальнейшего развития.
Potreste consigliarmi come implementare correttamente il riempimento del buffer dell'indicatore con i dati copiando dal buffer di un altro indicatore chiamato tramite iCustom? L'idea è quella di poter chiamare lo stesso indicatore, costruito sulla base dei dati di un altro strumento nella finestra dello strumento corrente.
Come risultato, il buffer dei dati è vuoto, il grafico non viene tracciato. Il buffer di colore non è importante.
//---- indicator settings#property indicator_separate_window#property indicator_buffers2#property indicator_plots1#property indicator_type1DRAW_COLOR_HISTOGRAM#property indicator_color1 Green,Red
#property indicator_style10#property indicator_width13//--- input datainputstring OtherSymbol=""; //Название символа, по которому считать. Если пусто - текущий символ//---- indicator buffersdouble DataBuffer[];
double ColorsBuffer[];
//---- external indicator handleint CustomHandle=0;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit()
{
SetIndexBuffer(0,DataBuffer,INDICATOR_DATA);
SetIndexBuffer(1,ColorsBuffer,INDICATOR_COLOR_INDEX);
IndicatorSetString(INDICATOR_SHORTNAME,"PercentChangeHistogram");
IndicatorSetInteger(INDICATOR_DIGITS,2);
//----if (OtherSymbol!="") //если есть имя другого символа, рекурсивно вызываем индикатор через iCustom
{
CustomHandle=iCustom(OtherSymbol,_Period,"PercentChangeHistogram","");
if (CustomHandle==-1)
{Alert ("iCustom function initialization failed!");
return (INIT_FAILED);}
}
return (INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| OnCalculate |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
if(rates_total<2)
return(0);
int start=prev_calculated-1;
if(start<1) start=1;
//---if (OtherSymbol=="")// если input переменная содержит пустую строку, заполняем индикаторный массив через простой расчет функцией CalculateData// если input переменная содержит не пустую строку, пытаемся заполнить индикаторный массив копированием данных другого индикатора
CalculateData(start,rates_total,open,close);
elseCopyBuffer(CustomHandle,0,start,rates_total-prev_calculated,DataBuffer);
//---return(rates_total);
}
...
Sembra che lei si riferisca alla sua età piuttosto che alla sua anzianità.
Ho letto il tuo messaggio, sembra tutto a posto :-) ma la domanda che ha provocato questa confusione?
Dichiarare un array tramiteSetIndexBuffer(1, tmp1) non fa nulla. Naturalmente, posso aumentare la dimensione dell'array nello stesso ciclo, ma voglio conoscere un modo più semplice ed efficiente.
Fallo. Poi il codice qui.
A proposito, Artem.
Il compito da svolgere solleva una domanda interessante.
Per controllare TUTTO, avete bisogno di una procedura di "importazione di dati".
Vale a dire, gli array dinamici dovrebbero essere caricati con i propri dati dinamici da fonti terze.
Non so se MT4/MT5 hanno questa procedura - o no?
Come importare i dati in MT4/MT5?
Ma è possibile?
-------------------------------------------------------------------
Mi interessa importare dati dinamici, non solo leggere dati da un array.
---------------------------------------------------------------------------------------------------------------
A proposito, qui è dove http://tol64.blogspot.com/2015/12/easy-and-fast-gui-mql.html questa importazione dovrebbe essere per costruzione.
Semplicemente non c'è modo di farlo senza.
------------------------------------------------------------------------------------------
Non vedo l'importazione in MT4/MT5 o nelle loro estensioni.
Datemi l'importazione!!!
Questa è una feroce sciocchezza, degna di entrare negli annali del forum.
"Ah, la moussa, sappiate che è forte,
"Che abbaia all'elefante!"
https://ru.wikisource.org/wiki/%D0%A1%D0%BB%D0%BE%D0%BD_%D0%B8_%D0%9C%D0%BE%D1%81%D1%8C%D0%BA%D0%B0_(%D0%9A%D1%80%D1%8B%D0%BB%D0%BE%D0%B2)
Alexey!
Ti farò una braciola, sul forum!!!
Scusa!
Buon pomeriggio!
Potreste consigliarmi come implementare correttamente il riempimento del buffer dell'indicatore con i dati copiando dal buffer di un altro indicatore chiamato tramite iCustom? L'idea è quella di poter chiamare lo stesso indicatore, costruito sulla base dei dati di un altro strumento nella finestra dello strumento corrente.
Come risultato, il buffer dei dati è vuoto, il grafico non viene tracciato. Il buffer di colore non è importante.
È un mucchio di stronzate, degne di entrare negli annali del forum.
Alexey!
Da quanto tempo sei un trader? -
- Nessuno?
I commercianti ragionavano in modo semplice?
- Che conto hai, Alexey - in più o in meno, e quanti anni?
- O non hai nessun conto di trading?
- Oppure, sei semplicemente senza cervello e hai deciso di insegnare ad altri trader?
- Ce ne sono molti.
--------------------------------------------------------------------------------------
- Ho un conto da trader, ed è un conto decente. Molto tempo, 20 anni, e non ho intenzione di insegnare a nessuno.
- Questo è il paradosso.
Alexey!
Da quanto tempo sei un trader? -
- Nessuno?
I commercianti ragionavano in modo semplice?
- Che conto hai, Alexey - in più o in meno, e quanti anni?
- O non hai nessun conto di trading?
- Oppure, sei semplicemente senza cervello e hai deciso di insegnare ad altri trader?
- Ce ne sono molti.
--------------------------------------------------------------------------------------
- Ho un conto da trader, ed è un buon conto. Molto tempo, 20 anni, e non ho intenzione di insegnare a nessuno.
- Questo è il paradosso.
Ti è stata data una risposta sul lato tecnico della moneta, e non dovrebbe essere affatto collegata alla qualità del trading.
Ti è stata data una risposta sul lato tecnico della moneta, e non dovrebbe essere affatto legata alla qualità del trading.
Perché?
O pensa che i commercianti siano "idioti analfabeti" che giocano e scommettono sul mercato?
Allora sono uno di loro.
Solo io prendo l'integrale di dx senza difficoltà. E tu? - Che c'è, hai un problema?
Ovviamente non sei un trader, così come molti altri "esperti" su questo forum!
Per un trader, il mercato FOREX è una "vacca sacra", che è SEMPRE GIUSTO.
Se riesci a spingere la tua idea attraverso questo mercato - sei un eroe!
Se il mercato ti rovescia, allora sai cosa ti aspetta!
--------------------------------------------------------------------------------------------------------
Ma nessuno viene bandito nel mercato Forex - un altro paradosso!!!
Che tu abbia ragione o torto - non importa, tutto è pagato!!!
Di nuovo. Guardate attentamente l'immagine:
Grazie per l'indizio.
Perché?
O pensa che i commercianti siano "idioti analfabeti" che giocano e scommettono sul mercato?
Allora sono uno di loro.
Solo io prendo l'integrale di dx senza difficoltà. E tu? - Che c'è, hai un problema?
Ovviamente non sei un trader, così come molti altri "esperti" su questo forum!
Per un trader, il mercato FOREX è una "vacca sacra", che è SEMPRE GIUSTO.
Se riesci a spingere la tua idea attraverso questo mercato - sei un eroe!
Se il mercato ti rovescia, allora sai cosa ti aspetta!
--------------------------------------------------------------------------------------------------------
Ma nessuno viene bandito nel mercato Forex - un altro paradosso!!!
Che tu abbia ragione o torto - non importa, tutto è pagato!!!
Si parla di array e si parla di Forex! Un paradosso, però!
- E ho un conto da trader, e uno decente. Per molto tempo, 20 anni, e non ho intenzione di insegnare a nessuno.
- Questo è il paradosso.
Forum sul trading, sistemi di trading automatico e test di strategia
Qualsiasi domanda per i neofiti su MQL4, aiuto e discussione su algoritmi e codici
Artyom Trishkin, 2018.10.17 18:00
Sembra che lei si riferisca alla sua età piuttosto che alla sua anzianità.Ho letto il tuo messaggio, sembra tutto a posto :-) ma la domanda che ha provocato questa confusione?
Dichiarare un array tramiteSetIndexBuffer(1, tmp1) non fa nulla. Naturalmente, posso aumentare la dimensione dell'array nello stesso ciclo, ma voglio conoscere un modo più semplice ed efficiente.