Caratteristiche utili da KimIV - pagina 60

 

Caro Kim, grazie mille per il tuo lavoro, le funzioni che hai scritto mi rendono la vita più facile.

Avete una funzione nel vostro arsenale che restituisce la perdita totale di tutti i trade perdenti consecutivi. Supponiamo che gli ultimi tre trade siano stati chiusi in perdita, voglio sapere la perdita totale di essi nella valuta di deposito. Per chiarire - esattamente gli ultimi trade consecutivi perdenti.

Sarò grato per l'aiuto, penso che altri possano avere bisogno di questa funzione.

 

KimIV

Ho provato a inserire le tue funzioni nell'Expert Advisor. Il compilatore scrive la seguente merda: La funzione "ClosePositions" non è referenziata e sarà rimossa dal file exp

La funzione "ExistPositions" non è referenziata e sarà rimossa dal file exp

La funzione "ManagePositions" non è referenziata e sarà rimossa dal file exp ...........................

Quale potrebbe essere il problema?




 
WroC писал(а) >>
Il compilatore scrive: La funzione "ClosePositions" non è referenziata e sarà rimossa dal file exp

Quale potrebbe essere la colpa?

Non è un bug. È un avvertimento che la funzione non è usata e quindi non ha senso compilare il suo codice.

 

Igor!

Ci sono sviluppi o solo pensieri sulle funzioni dei filtri temporali?

Ad esempio: per il mese, il giorno, la settimana corrente...

o: mese precedente, giorno, settimana, trimestre...

*

Idealmente, sarebbe così:

// FuncStPeriod(int Per, int Val)
// Где:
// Per = 0-день, 1-неделя, и т.д...
// Val = 0-текущие, 1-прошедший

// пример использования для выбора ордеров за период
if(FuncStPeriod(1, 0)) ...

Mi dispiace, ma vedo che non funziona...

O forse ho scelto il modello di filtraggio sbagliato...

Sono a un punto morto... in ogni senso della parola... :)))

 

Tu, Vasili, non sei politicamente corretto! L'entrata è indicata, ma dov'è l'uscita?

 

So, dentro di me, che 0,5+0,5 sarebbe un litro!

ma non riesco a risolvere il problema... (с) )))

*

Sarei molto grato per i campioni d'ordine della storia secondo i loro tempi.

*

E questi sono:

// FuncStPeriod(int Per, int Val)
// Dove:
// Per = 0 giorni, 1 settimana, ecc.
// Val = 0-corrente, 1-passato


// esempio di utilizzo per selezionare gli ordini per un periodo
if(FuncStPeriod(1, 0)) ...
*

L'ho scritto male, più precisamente, senza spiegazioni...

I parametri marcati sono solo parametri che la funzione può avere.

Qui sotto c'è un esempio di come viene usata questa funzione...

SE IL TEMPO DEGLI ORDINI È ANCHE (rientra) nel periodo di FILTRO

...

 

Vasiliy, stai parlando di nuovo dell'input. Cosa volete in uscita e in quale forma?

 

Ahhhh...

Giusto, uh... ecco dove sta il mio errore logico...

La funzione restituirà QUELLO, per esempio il numero 123456

Quello che serve per il filtro C e PO è...

*

In generale, è lo stesso del filtro della storia del conto in MT4.

Probabilmente l'elenco è formato da un ciclo, per esempio:

per( ...

se(Value1 > OrderCloseTime() > Value2)

...

*

Questa funzione deve restituire un valore stringa (?) da sostituire nel filtro if()

per( ...

se(FuncStPeriod(1, 0))

...

*

Merda. È complicato nella descrizione...

Mi sono confuso e tu sei in difficoltà.

:(

 

Beh, ci sei quasi riuscito da solo! Non hai bisogno di alcun filtro. Basta preparare due valori datetime, per esempio dt1 e dt2. Organizzare un ciclo di scambi chiusi. Seleziona gli ordini in base al selettore e controlla il loro orario di chiusura per:

if (OrderCloseTime()> dt1 && OrderCloseTime()< dt2) {
  // что-то делаете с выбранным ордером
}
 

Igor" capisco che...

È così che ho iniziato a risolvere il problema.

*

Tuttavia, il compito è quello di "riempire" quegli stessi dt1 e dt2 con i valori giusti!

Per esempio, trimestre, corrente. Nell'idea, la funzione dovrebbe restituire qualcosa del genere:

OrderCloseTime()>"01.10.2008" && OrderCloseTime()<"04.12.2008"

Prendendo oggi come data di inizio.

*

Vedo la fine della funzione FuncStPeriod(int Per, int Val) come segue:

FuncStPeriod(int Per, int Val)
{
string fsp;

//...
fsp="OrderCloseTime()>"+"dt1+" && OrderCloseTime()<"+dt2;
return(fsp);
}

***

Per esempio "calcolando" il numero di mesi indietro rispetto a quello attuale:

int KM()
{
int kolm;
kolm=(TimeLocal()-StrToTime("2007.10.01"))/2592000;
return( kolm-1);
} 

ma questo approccio semplicistico ha le sue insidie,

che si manifesterà nel fatto che è possibile identificare erroneamente

all'inizio dei mesi successivi...