[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 316

 
gyfto:

L'altro indicatore su #property indicator_chart_window via iCustom, e lì su DRAW_ARROW.

c'è un altro modo? o potresti darmi un link dove questo caso è implementato, forse l'hai già incontrato...

 
Zhunko:

Lo script di prova del kit funziona?


Sì, ha funzionato.

Zhunko:

Ci sono molti errori di sintassi.
Strano... Forse MetaEditor sta reagendo al greco? Almeno tutto si compila con me...
 
gyfto:


Lasciatemi provare ora. Quando scriviamo

allora in tutti i casi queste azioni saranno sempre eseguite, perché le prime due sono simili alla terza (controllare, semplificare l'espressione). Cioè, se sono variabili booleane, non abbiamo bisogno di mettere ==true, ==false, perché sono già vere o false da sole.


Capito, grazie! Mi dispiace per l'off-top. Mi sono iscritto a questo thread nel mio profilo e ho indicato di segnalare le risposte alla mia e-mail. Ma per qualche motivo non mi vengono notificate le risposte. Come posso risolvere questo problema?
 
clubsmi:

C'è un altro modo? O potresti darmi un link dove questo viene fatto, forse l'hai già visto...


No, non ho usato iCustom all'epoca perché non lo conoscevo. Ecco due esempi, uno e lo stesso algoritmo, solo che uno è in una sottofinestra e l'altro è segnale all'intersezione del primo.
File:
sst_alert.mq4  3 kb
sst_line.mq4  2 kb
 
gyfto:


Sì, funziona, funziona.

Questo è strano... Forse è così che MetaEditor reagisce al greco. Almeno tutto si compila con me...

Questo è un sollievo. Quindi dobbiamo cercare gli errori nel codice.

Sì, i personaggi greci compaiono per qualche motivo.

 
alsu:

Se è uno script e si trova nella cartella scpirts, allora è stato eseguito una volta e rimosso dal grafico. Per mantenerlo in modo permanente, mettete il vostro codice dentro questo



Per "script" intendevo l'algoritmo.

Quindi qualcuno può aiutarmi con l'algoritmo?

Voglio attivare un Alert quando il mercato è aperto e allo stesso modo quando il mercato è chiuso e il trading si è fermato Alert che il mercato è chiuso!

 
Credo di aver capito la ragione. Il TF è un secondo con gap, quindi ho provato a formare un ulteriore array unidimensionale di indici dove ogni elemento a "numero giusto di secondi fa" corrisponde all'elemento b "indice di questa candela in un secondo TF con gap". Il valore dell'indice richiesto viene quindi calcolato utilizzando la formula n(x)=ind[final]-ind[final-x]+1. Ma poiché questo TF non è ancora sincronizzato, a differenza dei minuti, che vengono scaricati automaticamente se il terminale viene riavviato dopo la chiusura di alcuni minuti fa, per esempio, Δt per sec. TF sarà a volte anormalmente grande, e questo è ciò che determina il ridimensionamento dell'array aggiuntivo, cioè Δt di celle sono riempite con lo stesso valore (indice di questa barra). In questo caso solo MemoryWrite, MemoryRead va fuori scala. La via d'uscita, in linea di principio, è "semplice": iniziare la sec. TF sul VPS, e si sincronizza con esso se il terminale viene riaperto dopo un breve periodo di chiusura. Più realisticamente, è meglio rimandare il lavoro con la libreria a lunedì, e lunedì iniziare a costruire questo array extra in tempo reale. Oppure vai direttamente dal tuo computer al VPS, e modellalo lì.
 
pasha5282:

Per "script" intendo un algoritmo.

quindi qualcuno può aiutarmi con l'algoritmo?

Quando il mercato si apre Avvisa che il mercato si è aperto e allo stesso modo quando il mercato si è chiuso e il trading si è fermato Avvisa che il mercato si è chiuso!


Non lo so, Pasha, ad essere sincero, non capisco cosa c'è che non va. Non è uno script, ma un pezzo di codice, giusto? Prova a metterci intorno delle parentesi per alleggerire la tua coscienza:

      if((DayOfWeek()==1) && (Hour()==0) && (Minute()==0) && (Seconds()==1)) Alert("Рынок открылся.");
      if((DayOfWeek()==5) && (Hour()==23) && (Minute()==59) && (Seconds()==59)) Alert("Рынок закрылся.");
 
чтобы при открытии рынка срабатывал Alert что рынок открылся, и аналогично когда рынок закрылся и торговля прекратилась Alert что рынок закрылся!
bool Opened=false;
...
int start()
if( !MarketInfo(Symbol(), MODE_TRADEALLOWED) ){
   if( Opened ){
   Alert("Рынок закрылся.");
   Opened=false;
}  }
else{
   if( !Opened ){
   Alert("Рынок открылся.");
   Opened=true;
}  }
 

Come posso semplificare questa espressione?

è dall'algoritmo ADX di MetaQuotes. Gli stessi MetaQuotes usano questa espressione:

if(pdm<0) pdm=0;
if(mdm<0) mdm=0;
if(pdm==mdm) { pdm=0; mdm=0; }
  else if(pdm<mdm) pdm=0;
    else if(mdm<pdm) mdm=0;

- come semplificare? Da Wiki,

Qui considero come la stessa funzione, solo con diversi parametri di input.

Motivazione: