[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 804

 
Maniac:


Ecco il codice dell'Expert Advisor. Ne ha bisogno:

1) ha aperto non uno, ma tre affari in una volta con stop di 25 e prese di 15, 35, 50

2) dopo che il secondo ordine è chiuso alla presa (35), l'ultima posizione (con presa 50) è portata al punto di pareggio

Lei usa le funzioni di Igor Kim... Tra tutta la varietà di funzioni già pronte
che ha messo a disposizione di tutti, non avete trovato il modo di risolvere il vostro "problema"?
Credetemi ci sono e anche abbastanza...
È un buon posto per iniziare a imparare...
Inoltre - leggete questa sezione del tutorial di IC - descrive bene come strutturare il vostro codice e romperlo in blocchi di codice logicamente strutturati,
Ogni blocco ha la propria funzione all'interno dell'Expert Advisor...
Hai tutto in una pila... :)
IMHO naturalmente... :)
 
Questo è un bel modo per far ballare una ragazza... <:-О ...
C'è una posizione Buy con il biglietto 88. C'è un ordine pendente SellStop con ticket 89
Quando l'ordine pendente SellStop viene convertito in un ordine a mercato, il ticket del Sell a mercato diventa anch'esso 89,
ma il TICKET della POSIZIONE DI ACQUISTO (88) sarà nella cronologia!!! Come può essere - non è chiuso ed è sul mercato!!!??????????????
Cioè quando si controlla:
if (OrderSelect(CurTicB,SELECT_BY_TICKET,MODE_HISTORY)) // CurTicB равен тикету позы, т.е. 88
   {
      if (OrderType()==OP_BUY)
          {
              Print("Поза Buy с тикетом ",CurTicB," отошла, блин в мир иной, сволочь!!!",", и типчик у неё = ",OrderType());
              SaveCurB = false;   
          }
      else if (OrderType()==OP_BUYSTOP) Print("Поза Buy с тикетом ",CurTicB," отошла, блин в мир иной, сволочь!!!",", а типчик у неё = ",OrderType());
   }

... c'è scritto nel mio diario:

2010.08.15 09:38:52 2009.01.09 19:36 Sergitas_v1.02 EURUSD,M5: La posizione Buy con il ticket 88 è andata maledettamente nel mondo successivo, il bastardo!!!, e il suo tipo = 0

E allo stesso tempo si sente alla grande sul mercato... !!!!!!!!!!! ?????????
Qualcuno può indicarmi qualcosa per vedere dove si va a parare... ...e come affrontarlo... Questo è il terzo giorno che mi fa incazzare...

( Ecco perché le mie espressioni nel diario del tester sono più forti di quelle che ho corretto qui... :)) )

Grazie...

 
artmedia70:
Questo è un bel modo per far ballare una ragazza... <:-О ...
C'è una posizione Buy con il biglietto 88. C'è un ordine pendente SellStop con ticket 89
Quando si trasforma un SellStop pendente in uno a mercato, anche il ticket del Sell a mercato diventa 89,
MA IL BIGLIETTO DI POSIZIONE D'ACQUISTO (88) ENTRA NELLA STORIA! Come può essere - perché non è chiuso ed è sul mercato!!!??????????????
Cioè quando si controlla:

... c'è scritto nel mio diario:

2010.08.15 09:38:52 2009.01.09 19:36 Sergitas_v1.02 EURUSD,M5: Acquista posa con biglietto 88 è andato all'altro mondo, bastardo!!!, e il suo tipo = 0

E nel frattempo si sente bene sul mercato... !!!!!!!!!!! ?????????
Qualcuno può indicarmi qualcosa per vedere dove si va a parare... ...e come affrontarlo... Questo è il terzo giorno che mi fa incazzare...

( Ecco perché le mie espressioni nel diario del tester saranno più forti di quelle che ho corretto qui... :)) )

Grazie...


Il tester è impeccabile!

Come tutto il codice e l'usabilità MetaQuotes Software Corp ...

Altrimenti è un divieto.

Cercate le storture nei microprogrammi e in voi stessi!

;)

 

Comincio a credere agli insetti...

La posizione di acquisto ha chiuso di punto in bianco sul livello di Take Profit di una posizione di vendita già chiusa:


Non c'è un arresto su Buy position, e bam! e chiuso e così
interessante - proprio a livello del prendere la posizione Sell già chiusa ...

Sembra che... c'è un non morto nel mio appartamento... o ho bisogno di dormire di più... :)

Qualcuno ha avuto un tale casino?

Non so...

 
FreeLance:

Il tester è impeccabile!

Così è tutto il codice e l'usabilità di MetaQuotes Software Corp ...

Altrimenti, sei bandito.

Cercate le storture nei microprogrammi e in voi stessi!

;)

Una risposta molto informativa... arco basso... Mi inchino e con le mani storte lascio cadere le pentole dagli scaffali... Nessuna scheggia? ;)
 
artmedia70:
Una risposta molto informativa... inchinarsi... Mi inchino e con le mie mani storte lascio cadere le pentole dagli scaffali. Hai preso qualche scheggia? ;)

no naturalmente - la rugiada di Dio! $)

e hai appena iniziato...

;)

 
artmedia70:
Questo è un bel modo per far ballare una ragazza... <:-О ...
C'è una posizione Buy con il biglietto 88. C'è un ordine pendente SellStop con ticket 89
Quando si trasforma un SellStop pendente in uno a mercato, anche il ticket del Sell a mercato diventa 89,
MA IL BIGLIETTO DI POSIZIONE D'ACQUISTO (88) ENTRA NELLA STORIA! Come può essere - perché non è chiuso ed è sul mercato!!!??????????????
Cioè quando si controlla:

... c'è scritto nel mio diario:

2010.08.15 09:38:52 2009.01.09 19:36 Sergitas_v1.02 EURUSD,M5: Acquista posa con biglietto 88 è andato all'altro mondo, bastardo!!!, e il suo tipo = 0

E sta facendo un ottimo lavoro sul mercato in quel momento... !!!!!!!!!!! ?????????
Qualcuno può punzecchiarmi in qualcosa in modo che io possa vedere dove sta il problema... ...e come affrontarlo... Questo è il terzo giorno che mi fa incazzare...

( Ecco perché le mie espressioni nel diario del tester saranno più forti di quelle che ho corretto qui... :)) )

Grazie...

Vi suggerisco di leggere attentamente la descrizione della funzione OrderSelect().

Il parametro pool è ignorato se l'ordine è selezionato utilizzando il numero di biglietto

 
artmedia70:

Comincio a credere agli insetti...

La posizione di acquisto ha chiuso di punto in bianco sul livello di Take Profit di una posizione di vendita già chiusa:


Non c'è alcuno stop nella posizione di acquisto, ma ha chiuso...! e chiuso e così
interessante - proprio al livello di prendere la posizione Sell già chiusa ...

Sembra che... c'è un non morto nel mio appartamento... o ho bisogno di dormire di più... :)

Chi ha avuto un tale casino?

Non so...

È difficile dire cosa avete lì. Non vedo che "La posizione Buy si è chiusa improvvisamente al livello TakeProfit di una posizione Sell già chiusa". Quel Sell, sotto il quale è disegnata la freccia, non sembra contenere alcun trattino.

Non usate OrderCloseBy() nel vostro codice?

 
double verhB=iBands(NULL,0,BandsPeriod,Bands_shift,Deviations,PRICE_CLOSE,1,0);//calcolare l'indicatore top line
double seredina=iBands(NULL,0,BandsPeriod,Bands_shift,Deviations,PRICE_CLOSE,0,0);//calcolare l'indicatore top line//
double nizB=iBands(NULL,0,BandsPeriod,Bands_shift,Deviations,PRICE_CLOSE,2,0);//calcolare l'indicatore della linea di fondo //
//---------------------------------------------------------------------------------------------------------------//
double slb,tpb,sls,tps; //variabili di input per Stop Loss e Take Profit////
/La funzione controlla la presenza di ordini // // //
// //
slb=NormalizeDouble(Ask - (Loss*Point),Digits) ; //calcolare lo stop per le posizioni di acquisto//
tpb=NormalizeDouble(Ask + (Profit*Point),Digits); //calcolare il profitto per le posizioni di acquisto////////////
sls=NormalizeDouble(Bid + (Loss*Point),Digits) ; //calcolare lo stop per le posizioni di vendita//
tps=NormalizeDouble(Bid - (Profit*Point),Digits);
se(OrdiniTotali()==0)
{
se(((verhB-nizB)<=Delta)&&(Ask==seredina))

tick =OrderSend(Symbol(),4,Lots,NormalizeDouble(Ask+Raznica*Point,Digits),Slip,slb,tpb,NULL,MagicNumber,0,CLR_NONE); // entrata in acquisto//
if(tick<0) Print("Error # - ",GetLastError());

tick2=OrderSend(Symbol(),5,Lots,NormalizeDouble(Bid-Raznica*Point,Digits),Slip,sls,tps,NULL,MagicNumber,0,CLR_NONE); //Input sat //
if(tick2<0) Print("Error # - ",GetLastError()); //scrivere l'errore//
} // // // //
return(0);}



Dimmi qual è l'errore, si apre solo.

Il significato dell'Expert Advisor è che metterebbe due pendenti a una certa distanza del limite superiore e inferiore di Bollinger

 

e qual è l'errore?

potrebbe essere perché il valore di Raznica è vicino al valore di stoplevel

e/o la differenza Raznica - Profit (Raznica - Loss) è anche vicina al valore dello stoplevel...

inoltre, se normalizza, normalizza tutto... e calcola correttamente i livelli di stop

slb=NormalizeDouble(Bid - (Loss*Point),Dig its) ; //calcolare lo stop per le posizioni di acquisto//
sls=NormalizeDouble(Ask + (Loss*Point),Digits) ; //calcolare lo stop per le posizioni di vendita//

inoltre i valori di arresto ottenuti dovrebbero essere controllati per essere fuori dalla zona stoplevale/freezelevale

Motivazione: