[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 99

 
ScioMe:

Salvato, sotto questi nomi, il nuovo grafico si apre allo stesso modo, nel vecchio modo. C'è un file strategytester.htm nella cartella templates che non so cosa fare con questo file.

Significa che qualcosa è stato fatto male, forse MT non è stato riavviato. Testato, dovrebbe funzionare.
 
zas:
Ciao, puoi aiutarmi con questa domanda? Non l'ho trovata sul forum. Il fatto è che dopo aver aperto un file in Excel, i dati sono rappresentati come una data, e se cambio il formato della data, ottengo i dati sbagliati. Ho provato diversi tipi di date, ma la stessa cosa. Ho provato a specificare il tipo di dati (Excel chiede) quando si carica, ma i numeri sembrano essere rappresentati come un numero punteggiato (per esempio 1,5624), e Excel non vuole fare nulla con loro.

La domanda non è sull'argomento del forum, perché devi andare a un corso di alfabetizzazione informatica e imparare a usare Word ed Excel, o trovare un libro su questi programmi e studiare.

E sulla tua domanda specifica, seleziona le celle necessarie, porta il cursore su di esse, clicca il tasto destro del mouse, poi "Formatta celle..." e seleziona il formato di presentazione dei dati desiderato.

 

Ragazzi, ditemi un consiglio...

Dovete confrontare il primo picco dell'istogramma con il secondo, se il secondo è più piccolo in valore abs, allora aprite buy a condizione che entrambi siano sotto zero e dopo di che assegnate il valore del secondo al primo picco, se dopo la formazione del primo picco la colonna dell'istogramma è passata da area negativa a positiva, allora annullate la presenza del primo picco, come ho fatto io - cioè per condizione azzeriamo entrambi i flag.

Si scopre che quando identifico i parametri del primo picco, la stessa condizione (gli stessi parametri) vale per il secondo. E questo è un errore... Vorrei in qualche modo "separare" questi fatti (con i loro parametri unici) di formazione delle figure 1 e 2, do il mio codice e figura per la baia...

double a1,a2,a11,a22;//  значения первого и второго пика 
bool fl1 = false;    //  флаги наличия 1-го и 2-го пика для их сравнения для входа в рынок по 3-ему варианту АО
bool fl2 = false;    //
bool signal_buy = false;
bool signal_sell = false;

double AO1 =  iAO(Symbol(), signal_period, 1);
double AO2 =  iAO(Symbol(), signal_period, 2);
double AO3 =  iAO(Symbol(), signal_period, 3);
  
 
 
if (AO3 < 0 && AO3 > AO2 && AO2<0 && AO2 < AO1 && AO1 < 0 && fl1==false && fl2==false) {a1 = AO22; fl1=true; Print ("образование первого пика",DoubleToStr(a1,6) );}
//    определение наличия 1-го пика, флаг установлен
 Print ("первый пик = ", DoubleToStr(a1, 6) );
 
// в след строке ошибка - получается, что после идентификации 1-го пика - эти же условия выполняются и для 2-го, а этого быть не должно... 
 if (AO3<0 && AO3>AO2 && AO2<0 && AO2<AO1 && AO1<0 && fl1==true && fl2==false)                        // определение наличия 2-го пика, флаги установлены
      { 
        a11 = AO2; fl1=true; fl2=true; Print ("образование второго пика", DoubleToStr (a11,6));
        if (a1<a11 && High [0] > High [1]) 
           { signal_buy = true; a1=a11; fl1=true;fl2=false;}    // активируем бай и запоминаем параметры как первого пика   
        else { a1=a11; fl1=true;fl2=false;}                     // просто запоминаем новый минимум - первый пик   
      }                                                       
  
 if (AO2>0 || High [0] < High [1]) {fl1=false; fl2=false;}     // если какой - либо столбец гистограммы  пересекает 0-ю линию между сигналами 2-а пика
                                                               // то сигнал считается недействительным. Cбрасываем флаги
 if (Mas_Tip[0]!=0 && signal_buy == true )  return(10);        // при доливке и сигнале к покупке открываемся с рынка 
 signal_buy = false;                                           // сбрасываем сигнал к покупке
 
 

 

Tutti i ragazzi che possono aiutare a creare un robot per il commercio, basta avere un'idea e bisogno di aiuto nella sua attuazione, io stesso nella programmazione non è forte, si può anche ottenere denaro, ma ragionevole!

 
ZahvatkiN:

Tutti i ragazzi che possono aiutare a creare un robot per il commercio, basta avere un'idea e bisogno di aiuto nella sua attuazione, io stesso nella programmazione non è forte, si può anche ottenere denaro, ma ragionevole!

Posso farlo per una cifra ragionevole.
 

Non riesco a capire.

Scritto in russo, ma non riesco a capire la sezione del manuale https://docs.mql4.com/ru/basis/variables/formal

Citazione:

I parametri per riferimento possono essere passati solo all'interno di un singolo modulo....... (Di quale modulo stiamo parlando?)

Gli array possono anche essere passati per riferimento, tutti i cambiamenti saranno riflessi nell'array originale . (Cambia gli elementi dell'array?)

 
Ciao a tutti, ho scavato in giro sul forum tutto il giorno e non ho trovato, si prega di consigliare dove è possibile scaricare lo storico delle quotazioni euro usd 1 min in hst, formato csv o come meglio caricarlo per un periodo massimo di tempo, il terminale dà solo un anno. Per favore inviatemi link o file. VI SONO GRATO IN ANTICIPO.
 
Domanda??

Ho aperto un ordine pendente -

Ticket = OrderSend(...,OP_SELLSTOP,...,TP,SL);

Se(Biglietto>0)

{ tutto è ok, aspetta che l'ordine in sospeso venga eseguito, se viene eseguito allora tutto è ok}

else

{attendere che la prossima barra si chiuda e se l'ordine non si apre, chiuderlo con forza con OrderDelite();}

aiuto con il codice

"attendere l'esecuzione dell'ordine in sospeso"

"aspetta la prossima barra per CLOSE e se l'ordine non si è aperto, chiudilo forzatamente con OrderDelite();"

 
for(k=0; k<KPeriod; k++)              // перебрать KPeriod баров
  if(Low[k]<minimum) minimum=Low[k];  // найти минимум

come sostituire correttamente questo con la funzione iLowest?

minimum=Low[iLowest (NULL, 0, MODE_LOW, KPeriod, 0)] - giusto?

 
robot:
Domanda??

{attendere che la prossima barra si chiuda e se l'ordine non si apre, chiuderlo forzatamente con OrderDelite();}

aiuto con il codice

"attendere l'esecuzione dell'ordine in sospeso"

"aspetta la prossima barra per CLOSE, e se l'ordine non si è aperto, chiudilo forzatamente con OrderDelite();"

dovreste capire un po' di logica e l'essenza del lavoro con gli ordini.

Per eseguire un'elaborazione in sospeso o in attesa di qualche evento, è necessario ricordare lo stato attuale del sistema e confrontarlo con quello previsto.

Nel tuo caso, hai un evento - una nuova barra è stata aperta, ma l'ordine non è scattato.

Per fare questo, potete andare in questo modo:

- ricorda il parametro Ticket, e l'ora del bar in cui hai aperto. Se c'è una nuova barra, allora puoi prendere immediatamente il biglietto precedentemente salvato e controllare se è un biglietto di mercato o un biglietto iniziale in sospeso. E se è in sospeso, cancellatelo.

Questa variante non è destinata al commercio reale; è solo per tester.

----------

Quindi, avete bisogno di Time[], OrderSelect(), OrderType(), OrderCloseTime().

Motivazione: