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

 
sdm:
Aggiungete una descrizione della punteggiatura e una definizione dei vostri concetti (per esempio "il vostro numero") e qui. E questo ramo aiuta solo quelli con le loro mani (e questo quando sono in vena)
 
come faccio a sapere se c'è un ordine aperto o impostato a un dato prezzo?
 
sdm:
Come faccio a sapere se c'è un ordine aperto o in sospeso al prezzo dato?

Esaminate gli ordini e confrontateli con il prezzo indicato. Se è così, controlla il tempo di apertura

if(OrderOpenTime()!=0) Se non è uguale a zero, allora è aperto, se è uguale, allora è in sospeso.

 
int start()
{

double kr =0.00060 // impostare il multiplo, passo
double msell =Ask - MathMod( Ask, kr); // prezzo di vendita

{
Alert(" solo ", msell," digitato);
ritorno;// exit start()
}
//----

//----
return(0)

}


Puoi dirmi cosa c'è di sbagliato qui?

la compilazione dà 'msell' - variabile non definita C:\Program Files\MetaTrader 4 \experts\temp.mq4 (16, 11)

 
l'ho trovato io stesso)
 
hoz:

abbiamo un contatore in cui i valori sono calcolati secondo l'ordine in cui appaiono le barre dalla barra con indicei_AnyBarsToHistory alla barra con indice 1. Ne segue che se la condizione sarà soddisfatta sulle barre dall'indice 30 all'indice 15:

directionMA == CROSS_UP 

e poi per esempio a cnt=2 la condizione sarà soddisfatta:

directionMA == CROSS_DN

Poi cnt sarà incrementato al valore precedente. Se avevamo 2, la nuova condizione aumenterà di 1, quindi cnt=3 e usciremo dalla funzione con il valore 3. Capite cosa intendo? Guardate meglio, la logica è in linea di principio chiara qui.

Scusa per il ritardo nella risposta, ero alle prese con il mio palmare. Quindi. La domanda è: come usare un tale contatore unico per determinare a quale movimento si riferisce, giusto? Potete cucire una variabile logica nel contatore, ma poi incrementarla di due invece che di uno.

int LastCandlesType(int& cnt){//передаём параметры по ссылке, т.е. они у нас отсюда меняются на глобальном уровне
        for (int i=IndicatorCounted(); i>=1; i--){//считаем все неподсчитанные свечи; появится новая свеча - функция прогонится один раз
                if ((2*cross-1)*(Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt){cnt=cnt+2;//инкрементируем на 2, т.к. у нас в cnt вшит cross
                }else{
                        cross = !cross;//иначе, если не соответствует, оборачиваем флаг направления
                        cnt = cross;//и обнуляем счётчик её значением
                }//потом cnt/2 будет количеством подсчитанных свечей,
        }//а cnt%2 - их направлением.
}

Va più o meno così.

 
sdm:
double kr =0.00060;//внимательнее надо быть
sdm:
l'ho trovato io stesso)

Come si dice, la nostra gente è così, è piena di consigli. Non ha avuto tempo).

 
Buon pomeriggio. Potreste dirmi come risolvere la seguente situazione: ho disegnato un oggettoOBJ_FIBOARC nella finestra. Ho impostato i livelli richiesti. Voglio capire che il prezzo ha superato un livello o un altro. Ho risolto un problema simile con i livelli di Fibonacci, ma è più facile perché operiamo con livelli orizzontali e l'incrocio può essere facilmente calcolato. Qui abbiamo un'ellisse. Non possiamo usare l'equazione del cerchio (ellisse) qui perché il sistema di coordinate X è il tempo e il sistema di coordinate Y è il prezzo, cioè i valori non sono comparabili.
 
gyfto:

Scusa per il ritardo nella risposta, mi stavo occupando della macchina.

Oh, cattivo ragazzo! Stai ancora tormentando Mashka :)

gyfto:

Scusa per il ritardo nella risposta, mi stavo occupando della macchina. Quindi. La domanda è: come usare un tale contatore unico per determinare a quale movimento si riferisce, giusto? Potete cucire una variabile logica nel contatore, ma poi incrementarla di due invece che di uno.

int LastCandlesType(int& cnt){//передаём параметры по ссылке, т.е. они у нас отсюда меняются на глобальном уровне
        for (int i=IndicatorCounted(); i>=1; i--){//считаем все неподсчитанные свечи; появится новая свеча - функция прогонится один раз
                if ((2*cross-1)*(Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt){cnt=cnt+2;//инкрементируем на 2, т.к. у нас в cnt вшит cross
                }else{
                        cross = !cross;//иначе, если не соответствует, оборачиваем флаг направления
                        cnt = cross;//и обнуляем счётчик её значением
                }//потом cnt/2 будет количеством подсчитанных свечей,
        }//а cnt%2 - их направлением.
}

Va più o meno così.

Beh, l'hai scritto per l'indicatore, non per l'Expert Advisor. Sono un consulente esperto.

E perché incrementare di 2?

gyfto:

Quindi. La domanda è: come determinare a quale movimento si riferisce, giusto?


Voglio che il calcolo delle barre consecutive di una caratteristica (per esempio, sia ribassista o rialzista) sia basato su qualche caratteristica, che viene passata attraverso un parametro di funzione.

A proposito, https://www.mql5.com/ru/forum/144705, ho creato un ramo separato. È tutto lì, quello che serve. È molto interessante scoprire cosa c'è di sbagliato.

 
Quindi ecco la domanda... Non capisco, quando ho scaricato le quotazioni, il terminale esegue uno script per ricalcolare timeframes..... su un mese che giorno mette 30 o 31 come faccio a saperlo?