calcolare il numero di caratteri, + la dimensione del carattere, in questo modo?
La dimensione dei caratteri non ti dà la conoscenza di cui hai bisogno. Devi disegnare diversi oggetti uno sopra l'altro. Solo il primo oggetto ha un punto di ancoraggio. Come ottenere il punto di ancoraggio del 2o e dei successivi oggetti?
Ciao, studiando MQL4 è sorta una piccola domanda. Il problema è riportato nel tutorial su questo sito. Ecco la condizione: Compito 25. Creare un programma, in cui si realizzano le seguenti condizioni: se il tasso di cambio è salito oltre il livello specificato, allora dare un messaggio, in cui le parole indicano che il tasso supera il livello (fino a 100 punti); in altri casi, informare che il tasso non supera il livello specificato. Ed ecco la soluzione proposta:
//--------------------------------------------------------------------externdoubleLevel=1.3200; // Заданный уровень stringText[101]; // Объявление массива//--------------------------------------------------------------------intinit()// Спец. ф-ия init(){// Присвоение значенийText[1]="один "; Text[15]="пятнадцать ";
Text[2]="два "; Text[16]="шестнадцать ";
Text[3]="три "; Text[17]="семнадцать ";
Text[4]="четыре "; Text[18]="восемнадцать ";
Text[5]="пять "; Text[19]="девятнадцать ";
Text[6]="шесть "; Text[20]="двадцать ";
Text[7]="семь "; Text[30]="тридцать ";
Text[8]="восемь "; Text[40]="сорок ";
Text[9]="девять "; Text[50]="пятьдесят ";
Text[10]="десять "; Text[60]="шестьдесят";
Text[11]="одиннадцать "; Text[70]="семьдесят ";
Text[12]="двенадцать "; Text[80]="восемьдесят ";
Text[13]="тринадцать "; Text[90]="девяносто";
Text[14]="четырнадцать "; Text[100]= "сто";
// Вычисление значенийfor(inti=20; i<=90; i=i+10)// Цикл по десяткам{for(intj=1; j<=9; j++)// Цикл по единицамText[i+j]=Text[i] + Text[j]; // Вычисление значения }return; // Выход из init()}//--------------------------------------------------------------------intstart()// Спец. ф-ия start(){intDelta=NormalizeDouble((Bid-Level)/Point,0);// Превышение //--------------------------------------------------------------------if(Delta>=0)// Цена не выше уровня{Alert("Цена ниже уровня"); // Сообщениеreturn; // Выход из start()}//--------------------------------------------------------------------if(Delta<100)// Цена более 100{Alert("Более ста пунктов"); // Сообщениеreturn; // Выход из start()}//--------------------------------------------------------------------Alert("Плюс ",Text[Delta],"pt."); // Вывод на экранreturn; // Выход из start()}
//---------------------------------------------------------------------
По-моему в условных операторах неправильно проставлены знаки сравнения. Они должны быть с точностью до наоборот. Скажите прав ли я? И если нет, то почему так?
Non dirò con certezza che è colpa dell'indicatore. Non ho ancora molta esperienza al riguardo.
Ma come accelerarlo? Ho fatto tutto bene o posso cambiare qualcosa?
In linea di principio, è sufficiente che l'indicatore sia calcolato utilizzando le ultime 100 barre, ma se imposto il numero 100 invece di 500, i valori scompaiono.
Se si esegue l'ottimizzazione a questa velocità, la sua barba di completamento crescerà fino al pavimento e i mullen guadagnati non saranno utili) Bene, o il mercato sarà completamente diverso.
Caro, ho bisogno del tuo aiuto.
Sto ottimizzando il mio Expert Advisor tramite l'indicatore, il codice dell'indicatore è qui sotto.
L'ottimizzazione è lenta, ho fatto un codice nell'EA per ricalcolare l'indicatore su una nuova barra, che non è proprio adatto.
Si prega di vedere il codice dell'indicatore, cosa si può fare in esso per rendere il ricalcolo più veloce.
perché ha pensato che fosse colpa dell'indicatore?
calcolare il numero di caratteri, + la dimensione del carattere, in questo modo?
La dimensione dei caratteri non ti dà la conoscenza di cui hai bisogno. Devi disegnare diversi oggetti uno sopra l'altro. Solo il primo oggetto ha un punto di ancoraggio. Come ottenere il punto di ancoraggio del 2o e dei successivi oggetti?
Completamento forzato dell'EA nel caso in cui l'utente scarichi l'EA.
è meglio registrare i dati direttamente all'inizio.
----------------------------------------------------
Il tempo di esecuzione di deinit è limitato a 10 secondi.
Nel tester al normale completamento il flag di stop non è impostato, quindi il deinit è tranquillamente completato.
----------------------------------------------------Forse un limite di 10 secondi è imposto al funzionamento di qualsiasi funzione?
Ed ecco la soluzione proposta:
Perché ha pensato che fosse colpa dell'indicatore?
Per esempio, ho ottimizzato AMA, è molto più veloce l'ottimizzazione, anche se l'indicatore è complesso.
Non dirò con certezza che è colpa dell'indicatore. Non ho ancora molta esperienza al riguardo.
Ma come accelerarlo? Ho fatto tutto bene o posso cambiare qualcosa?
In linea di principio, è sufficiente che l'indicatore sia calcolato utilizzando le ultime 100 barre, ma se imposto il numero 100 invece di 500, i valori scompaiono.
Se si esegue l'ottimizzazione a questa velocità, la sua barba di completamento crescerà fino al pavimento e i mullen guadagnati non saranno utili) Bene, o il mercato sarà completamente diverso.Buon pomeriggio. Potete dirmi se è possibile definire o calcolare programmaticamente la larghezza/altezza su un grafico di un oggetto OBJ_TEXT?
Testo probabilmente no, ma etichetta per favore
docs.mql4.com/it/constants/objectconstants/enum_object_property
Proprietà OBJPROP_XSIZE e OBJPROP_YSIZE
Ma, come accelerare? Ho fatto tutto bene qui o c'è qualcosa che posso cambiare?
Bene, si vede subito che il calcolo è difettoso, per esempio è stata aggiunta una barra.
limit1 sarà due... E poi
Comunque, il ricalcolo è completamente sbagliato...
Grazie mille, buona giornata :) >)
Bene, qui si vede subito che il ricalcolo ha fatto un casino, per esempio è stata aggiunta una barra.
limit1 sarà due... E poi
Comunque, il ricalcolo è completamente sbagliato...
Tirerò a indovinare:
limit1=Bars-counted_bars;dovrebbe essere così?
Non so cosa stia succedendo qui.
Se in generale, mi basta avere l'indicatore calcolato sulle ultime 100 barre.