Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 77

 
Sepulca:

Trolling you)))) Hai una personalità carismatica))))
Grazie per il complimento, mi piacerebbe sapere da dove vengono le gambe.
 
bistreevseh:
Penso che questa sia la parte del codice che può causare il problema, grazie mille in anticipo.


Così su due piedi

se Work=FALSE, l'EA non funzionerà.

L'EA non funziona se c'è almeno un ordine pendente, non c'è nessun controllo su MAGIC.

Stai ricevendo qualche risposta?

 
MisterD:

Non funziona, perché le variabili che volete fissare a livello globale, cioè prima della funzione Start... Per esempio questi e così via.... " FiksiruemUp = True; // fix " e "iksiruemUp = False; // reset"
Se non si passa da un timeframe all'altro, dovrebbe funzionare...


Ho fatto così con le variabili, le ho messe a livello globale.

se si tiene conto del seguente punto:

quando il prezzo è sopra la linea superiore, assegna True a FiksiruemUp, dopo che il prezzo diventa sotto la linea superiore e ancora sopra la linea centrale, cosa sarà assegnato a FiksiruemUp: True o False?

Mi sembra che in questa situazione assegni automaticamente False, perché False è stato assegnato nelle variabili globali, mentre True viene assegnato solo quando il prezzo è sopra la linea superiore.

 
Levariabili globali sono di tipo doppio e solo doppio. Dovreste tenerlo a mente quando mettete un bool nelle variabili globali.
 
Sepulca:


Subito dopo l'inizio

se Work=FALSE l'EA non funzionerà.

L'EA non funziona se c'è almeno un ordine pendente, non c'è nessun controllo per MAGIC.

Ti dà qualche segnale?


L'advisor funziona, cioè apre ordini, dà avvisi di apertura e fa scattare tp o sl, non mette nemmeno i pendenti
 
Sepulca:
Le variabili globali sono di tipo doppio e solo doppio. Dovreste tenerlo a mente quando mettete un bool nelle variabili globali.

eppure, come dovrebbe essere?
 
Sepulca:
Le variabili globali sono di tipo doppio e solo doppio. Dovreste tenerlo a mente quando mettete un bool nelle variabili globali.

non stiamo parlando di GlobalVariables qui, stiamo parlando di variabili a livello globale.... rileggere questo punto, c'è una differenza....
 
belck:


Ho fatto così con le variabili, le ho messe a livello globale.

se si tiene conto del seguente punto:

quando il prezzo è sopra la linea superiore, assegna True a FiksiruemUp, dopo che il prezzo diventa sotto la linea superiore e ancora sopra la linea centrale, cosa sarà assegnato a FiksiruemUp: True o False?

Mi sembra che in questa situazione assegni automaticamente False, perché è stato assegnato False nelle variabili globali, mentre True viene assegnato solo quando il prezzo è sopra la linea superiore.


Inizialmente, se non viene specificato nulla a livello globale, il valore sarà False.... Dopo che la variabile è impostata su True, avrà questo valore fino alla seguente condizione if (Ask < LineS) FiksiruemUp = False; // reset.... Se la condizione è soddisfatta, alla variabile sarà assegnato il nuovo valore False e rimarrà così fino al momento -"quando il prezzo è sopra la linea superiore, assegna True a FiksiruemUp" e così via... Spero di essermi spiegato chiaramente... :)
 
MisterD:

Inizialmente, se non viene specificato nulla a livello globale, il valore sarà False.... Dopo che la variabile è impostata su True, avrà questo valore fino alla seguente condizione if (Ask < LineS) FiksiruemUp = False; // reset.... Se la condizione è soddisfatta, alla variabile sarà assegnato il nuovo valore False e rimarrà così fino al momento -"quando il prezzo è sopra la linea superiore, assegna True a FiksiruemUp" e così via... Spero di essermi spiegato chiaramente... :)

Ora capisco, grazie mille.
 

Amici, aiutatemi. Ho bisogno di chiudere tutti gli ordini su una coppia di valute selezionata. Ecco cosa ho scritto (parte del codice di EA):

int Zakrit_vse()

{

Totale=OrdiniTotali();

int Vsego;

for(int i=1; i<=OrdersTotal(); i++) // Eseguire il loop attraverso gli ordini, chiudere tutti

{

se (OrderSelect(i-1,SELECT_BY_POS)==true)

{

se (OrderSymbol()!=Symb)continua;

Ticket=OrderTicket();

Lot=OrderLots();

Price=OrderOpenPrice();

Vsego++;

Tip=OrderType();

Allarme(Tip);

se(Punta>1)

{

OrderDelete(Ticket);

Prov_oshibok();

continuare;

}

se(Tip==0)

{

OrderClose( Ticket,Lot, Bid,100);

Prov_oshibok();

continuare;

}

se(Tip==1)

{

OrderClose( Ticket,Lot, Ask,100);

Prov_oshibok();

continuare;

} //

}

}

Allarme(Totale," ",Vsego);

int ret=MessageBox("Operazione completata con successo",

",MB_OK|MB_ICONQUESTION|MB_TOPMOST);

if(ret==IDOK) // se la risposta è "sì"

{

Print("Tutti gli ordini di ",Vsego," chiusi con successo;)

}

}

Ma per qualche motivo solo un ordine su due viene chiuso. Se ci sono 6 ordini, 3 sono chiusi, se ce ne sono 8-4, ecc.

Cosa può essere? Qual è l'errore, per favore consigliatemi?

Motivazione: