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

 
rapid_minus:

Ahi! Guru! Ti sei rotto il dito nel palmo della mano?

Pensavi che non avessi altro da fare? Sono sorpreso di sentire che...

Nessuno può trovare un errore logico tranne te, perché nessuno sa cosa stai facendo. E ognuno ha uno stile di scrittura diverso e per me personalmente è difficile leggere il tuo codice, non riesco a vedere l'accoppiamento delle parentesi. Ogni parentesi di chiusura si trova sotto quella di apertura e ogni coppia di parentesi non è alla stessa distanza dal bordo sinistro. Questo è stato risolto quando le parentesi non erano evidenziate, e non lo sono nemmeno ora sul forum.

Cos'è (condizione A, B, C, D, D, E)? Apparentemente c'è un errore qui, ma non è sicuro. E siete sicuri che gli ordini sono aperti con i maghi elencati? Capite i metodi per trovare gli errori logici? Vi è stato ripetutamente consigliato di staccare il codice e vedere dove l'esecuzione entra e dove no, e voi continuate a chiedere aiuto.

 
tuner:
Probabilmente... ci sono funzioni integrate in MQl4 relative al salvataggio e al caricamento di modelli: ChartSaveTemplate, ChartApplyTemplate
Capito, grazie!
 

Volevo scrivere un semplice script per creare un segmento(linea di tendenza) su un grafico con l'inizio nel punto in cui viene lanciato lo script (nessun problema) e la fine alle coordinate in cui verrà fatto il clic del mouse... Qui è dove sono inciampato... Come farlo in un indicatore o esperto per catturare questo evento è elementare, come farlo nello SCRIPT? Come si fa in Script?

 
Batman:

Volevo scrivere un semplice script per creare un segmento (linea di tendenza) su un grafico con l'inizio nel punto in cui viene lanciato lo script (nessun problema) e la fine alle coordinate in cui verrà fatto il clic del mouse... Qui è dove sono inciampato... Come farlo in un indicatore o esperto per catturare questo evento è elementare, ma come farlo in uno script? Come si fa in Script?

Mettendo in loop lo script.
 
tara:
Mettendo in loop lo script.

Ho provato, per esempio, un ciclo in OnStart sta girando da solo, maOnChartEvent non è più in esecuzione in quel momento...

C'è un esempio pratico di come evitare che lo script termini finché non aspetta un evento di clic del mouse?

 
Batman:

Ho provato, per esempio, un ciclo in OnStart sta girando da solo, ma OnChartEvent non è più in esecuzione in quel momento...

C'è un esempio pratico di uno script che non termina finché non aspetta un evento di clic del mouse?

Che ne dite di un looping attraverso una funzione personalizzata che dipende da OnChartEvent per tornare?

Questa è un'improvvisata. Non sono sicuro che funzioni, ma se dovessi farlo, proverei proprio questa soluzione.


zy. Credo di essere stato troppo frettoloso con la mia opinione. L'evento OnChartEvent sembra non essere disponibile negli script
 
AlexeyVik:

E se il looping attraverso una funzione personalizzata il cui ritorno dipende da OnChartEvent

Questa è un'improvvisata. Non sono sicuro che funzionerà, ma se dovessi farlo, proverei proprio questa soluzione.

E come sarebbe?)).

Ho in qualche modo il sospetto che quando si organizza un qualsiasi ciclo nello script, la gestione degli eventi non ha più luogo... Se viene fatto quando gli script sono in esecuzione - ne dubito già...

Un compito così semplice non ha soluzione, almeno "senza ballare con i tamburelli"?

 
Batman:

Come sarebbe?))

In qualche modo sospetto che quando un qualsiasi ciclo è impostato in uno script, l'elaborazione degli eventi non ha più luogo... Se viene fatto quando si eseguono gli script - ne dubito già...

Un compito così semplice non ha soluzione, almeno "senza ballare con i tamburelli"?

Bene, il ciclo attraverso una funzione definita dall'utente è semplice. Questa funzione viene chiamata attraverso il ciclo while e a seconda del valore restituito ripete o interrompe

Ma la presenza di OnChartEvent negli script è... è discutibile.

A quanto pare, dobbiamo capire cosa è possibile negli script e cosa è più costoso metterci. Mi sembra che il risultato possa essere imprevedibile e dipenda dall'utente, non dal programmatore. Immaginate cosa succederà se non premete il "topo" in uno script del genere... il ciclo non terminerà. E cosa può fare l'utente dopo? Come una scimmia con una granata.

 
AlexeyVik:

Beh, il ciclo tramite una funzione personalizzata è semplice. Il ciclo while chiama questa funzione e a seconda del valore restituito, ripete o interrompe

Ma la presenza di OnChartEvent negli script... è discutibile.

A quanto pare, dobbiamo capire cosa è possibile negli script e cosa è più costoso metterci. Mi sembra che il risultato possa essere imprevedibile e dipenda dall'utente, non dal programmatore. Immaginate cosa succederà se non premete il "topo" in uno script del genere... il ciclo non terminerà. E cosa può fare l'utente dopo? Come una scimmia con una granata.

Qualche sciocchezza su una scimmia con una granata...))) Lo script viene trascinato sul grafico con il mouse, poi l'utente clicca nel punto giusto del grafico (gli eventi in attesa e l'intercettazione degli eventi devono essere gestiti in qualche modo...), viene creato un oggetto grafico, lo script completa il suo lavoro. Per gli "smemorati", è possibile terminare l'attesa dopo un certo tempo. Anche uno script storto "appeso" viene rimosso dal grafico cliccando con il tasto destro del mouse, "Remove script".

Domanda - perché non è possibile gestire gli eventi di pressione dei pulsanti o simili nello script? Cosa è proibito qui?

 
Batman:

Qualche sciocchezza su una scimmia con una granata...)) Lo script viene trascinato sul grafico con il mouse, poi un clic abbastanza naturale nel punto giusto del grafico (supponendo che l'attesa e la cattura degli eventi sia stata organizzata in qualche modo...), viene creato un oggetto grafico, lo script termina. Per gli "smemorati", è possibile terminare l'attesa dopo un certo tempo. Anche uno script storto "appeso" viene rimosso dal grafico cliccando con il tasto destro del mouse, "Remove script".

Domanda - perché non è possibile gestire gli eventi di pressione dei pulsanti o simili nello script? Cosa è proibito qui?

Non ci crederete. Ho un amico a cui dico "Chiudere il terminale"... Cosa pensi che faccia? LUI LO FA... Questo è quello che io chiamo "scimmia con una granata". Non si sa mai dove la lancerà. Non indovinerete mai cosa un tale utente farà al vostro programma.

Perché l'elaborazione degli eventi è impossibile è una domanda per MQ.

Provate a risolverlo usando l'Expert Advisor che cancella l'Expert Advisor dal grafico usando la funzione ExpertRemove()