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

 
keep87:

È un po' più semplice, lavoreremo all'interno della funzione start.

Per prima cosa, creeremo una variabile in cui scriveremo la direzione dell'ultima candela.

int Candle=-1;

Se lo riempiamo con un certo valore, uno di questi indicherà che la candela è rialzista, un altro indicherà che è ribassista. se -1, allora non è niente (non può essere determinato o non ha direzione close=open).

Valore che propongo di usare per analogia con un ordine commerciale 0 - comprare, 1 - vendere;

Inoltre scriviamo:

se(Close[1]>Open[1]) Candela=0; altrimenti
if(Close[1]<Open[1] Candela=1;

ora abbiamo una direzione definita e possiamo usarla direttamente nella funzione OrderSend( string symbol, int cmd, ...il resto della merda...);

if(Candle!=-1) OrderSend( Symbol(),Candle, ...altra roba...);

O seguendo la tua analogia:

se(Candela==0) OpenBuy();
se(Candela==1) OpenSell();

Sì, infatti, è la stessa della funzione che ho scritto qui, confrontala con quello che restituisce. Non voglio scrivere tutto il codice in start, sto imparando a mettere tutto separatamente. E capisco la logica, grazie.
 
hoz:

Questo è il modo in cui lo uso di tanto in tanto. Guardate, ora le funzioni appaiono così:

Sto leggendo nel registro:

Quindi inizialmente dal prezzo di acquisto allo stop c'era una differenza di 1,3204 - 1,3194 = 0,001 punti.

Altri 1,3210 - 1,3201 = 0,009 punti

E per qualche ragione nel secondo caso, lo stop era più vicino al prezzo di entrata, ma non c'era nessun errore! Ci ho pensato e non l'ho capito.

Ho corretto l'errore più tardi in un modo diverso. Ci sono già delle condizioni nel codice:

if(price > Ask) && if(price < Bid) rispettivamente per comprare e vendere. O c'era un'altra variante? Ora non abbiamo più errori. Ma, tuttavia, mi piacerebbe ascoltare l'opinione di un programmatore più esperto.


Questo è ciò di cui ho scritto:

Ilsecondo errore è che non si controlla dove si mette l'ordine.

 
r772ra:

O forse sì:

if(NumberOfPositions("EURUSD")==0 && NumberOfPositions()<10)
Ed ecco la funzione


Questo è più vicino alla verità. Grazie mille, farò una prova.
 

consigliare se è possibile agganciare le variabili in mql4, cioè due variabili int e devono essere agganciate, una variabile ha il numero 59 e l'altra 17, devo ottenere 5917?

 
pasha5282:

consigliare se è possibile agganciare le variabili in mql4, cioè due variabili int e devono essere agganciate, una variabile ha il numero 59 e l'altra 17, devo ottenere 5917?


HMM. Non ho capito cosa vuoi dire prima di aver letto tutto :) Che tipo di dati volete nell'output?

A quanto pare, il modo in cui vedo la soluzione a questa situazione è questo:

1. Convertire int 59 e 17 in tipo stringa

2. Poi concateniamo i dati di queste stringhe.

3. li convertiamo di nuovo al tipo int

Forse ci sono altre varianti, ma al momento non posso pensare diversamente.

 
pasha5282:

consigliare se è possibile agganciare le variabili in mql4, cioè due variabili int e devono essere agganciate, una variabile ha il numero 59 e l'altra 17, devo ottenere 5917?

5917= (StrToInteger(DoubleToStr(59.123,0) + DoubleToStr(17.456,0))
xxx
 
in php puoi agganciare le variabili, cioè $one = 59; $due = 17; $decisione = $one.$due; così non aggiungiamo due numeri, li "incolliamo" insieme per ottenere 5917
 
pasha5282:
in php puoi agganciare le variabili, cioè $one = 59; $due = 17; $decisione = $one.$due; così non aggiungiamo due numeri, li "incolliamo" insieme per ottenere 5917

mql4 non è un linguaggio molto potente, quindi devo accontentarmi di quello che ho...
 
hoz:

mql4 non è un linguaggio molto potente, quindi devo accontentarmi di quello che ho...

Dovrò occuparmene. Penso che potrei aver dimenticato queste cose elementari, ma quando sono andato all'aiuto, non le ho trovate, forse gli sviluppatori non hanno previsto una tale opzione, o devo cercare più informazioni.
 
pasha5282:

Andrò in fondo a questa storia. Grazie per almeno una risposta, pensavo di essere stupido e non ricordare cose così elementari, e quando sono andato all'aiuto non ho trovato, apparentemente gli sviluppatori non hanno fornito una tale opzione. o bisogno di cercare di più, in ogni caso, grazie per le risposte.

Ad essere onesti, non so nemmeno perché questo possa essere necessario. A quanto pare gli sviluppatori non ci hanno pensato nemmeno loro.
Motivazione: