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

 
hoz:

Certo che capisco. Solo che non ho mai visto la presenza di un ordine analizzato in questo modo:

di solito solo senza ==vero... Mi è piaciuto questo punto. Anche se è interessante, non ho visto questo metodo in altri EA. Capisco la logica, ma comunque.


Provate a sperimentare diverse varianti, sarà più facile capire tutto! Buona fortuna!
 
hoz:

Certo che capisco. Solo che non ho mai visto la presenza di un ordine analizzato in questo modo:

di solito solo senza ==vero... Mi è piaciuto questo punto. Anche se è interessante, non ho visto questo metodo in altri EA. Capisco la logica, ma comunque.

Una stessa azione nel codice può essere scritta in modi diversi e tutti saranno eseguiti correttamente. La differenza può essere vista o nella semplicità di scrittura del codice o nella sua velocità, o entrambe insieme e si può dire che il codice è stato scritto da un professionista.
 
Puoi dirmi come fermare l'esperto? Una ricerca non ha prodotto nulla di significativo :((
 
fmillion:
Puoi dirmi la funzione per fermare un EA? La ricerca era incomprensibile :((

Nessun problema:

bool ОстановкаСоветника (bool Причина)
{if (Причина) return (true) else return (false);}

int start()
{
    if (ОстановкаСоветника (Причина)) return (0);
    //---- Код советника

}

e puoi anche usare il pulsante "Advisors" nel terminale per disabilitare un EA.

 

Ciao

Potresti per favore dirmi

Quando passo attraverso la funzione OrderSelect, gli ordini sono ordinati per numero d'ordine, non per biglietto

Per quale parametro sono ordinati questi ordini?

Ho notato che sono ordinati per tempo di apertura dell'ordine, cioè l'ultimo ordine è l'ultimo in termini di tempo di apertura, sia a mercato che in sospeso

È sempre così in questa funzione o è diverso?

Cioè, è sempre possibile ottenere un biglietto dell'ultimo ordine aperto/posto in questo modo?

 
mentre(!IsTradeAllowed()) Dormire(500);
RefreshRates();
if(Cmd == 0) PR = Bid; altrimenti PR = Ask;
int tic=OrderSend(Symbol(),Cmd,Lot,PR,Slippage,0,",Magic,0,CLR_NONE);
se(tic<0){
Print("Order open error: ",GetLastError());
Print("Pair=",Symbol(),"...Command=",Cmd,"...Lot=",Lot,"...Price=",DoubleToStr(PR,Digits));

}

Scivolamento = 5 punti

Errore 129 )) ..... Dove diavolo è? Cosa c'è che non va?

 
fmillion:
mentre(!IsTradeAllowed()) Dormire(500);
RefreshRates();
if(Cmd == 0) PR = Bid; altrimenti PR = Ask;
int tic=OrderSend(Symbol(),Cmd,Lot,PR,Slippage,0,",Magic,0,CLR_NONE);
se(tic<0){
Print("Order open error: ",GetLastError());
Print("Pair=",Symbol(),"...Command=",Cmd,"...Lot=",Lot,"...Price=",DoubleToStr(PR,Digits));

}

Scivolamento = 5 punti

Errore 129 )) ..... Dove diavolo è? Cosa c'è che non va?

Prova così:

if(Cmd == 0) PR =Ask; altrimenti PR =Bid;

Penso che questo aiuterà.

 

Ecco il copione:

//+------------------------------------------------------------------+
//|                                Brooky_FibIt_Extension_Script.mq4 |
//|                        Copyright 2012, www.Brooky_Indicators.com |
//|                                        www.Brooky_Indicators.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, www.Brooky_Indicators.com"
#property link      "www.Brooky_Indicators.com"
#property show_confirm  
#property show_inputs
//+---------------------
//| script program start function                                    |
//+------------------------------------------------------------------+

extern int       FibOnChartNum =1;

extern color     Fib_Cbar_Color = Red;
extern int       Fib_Cbar_Size=1;
extern int       Fib_Cbar_Style=2;

extern color     Fib_Level_Color = Gray;
extern int       Fib_Level_Size=1;
extern int       Fib_Level_Style=2;

extern double     Fib_Level_1 = -0.117;
extern double     Fib_Level_2 = 0;
extern double     Fib_Level_3 = 1;
extern double     Fib_Level_4 = 1.618;
extern double     Fib_Level_5 = 2;
extern double     Fib_Level_6 = 2.382;
extern double     Fib_Level_7 = 3;

string Xtra_txtFib_Level_1  = "(SL) ";
string Xtra_txtFib_Level_2  = "";
string Xtra_txtFib_Level_3  = "";
string Xtra_txtFib_Level_4  = "(TP1)";
string Xtra_txtFib_Level_5  = "(TP2)";
string Xtra_txtFib_Level_6  = "Re Entry Break ";
string Xtra_txtFib_Level_7  = "";


string txtFib_Level_1  = "";
string txtFib_Level_2  = "";
string txtFib_Level_3  = "";
string txtFib_Level_4  = "";
string txtFib_Level_5  = "";
string txtFib_Level_6  = "";
string txtFib_Level_7  = "";


string FibPrice = " @ %$";
string FibName = "";


int start()
  {
//----
      txtFib_Level_1 = StringConcatenate(Xtra_txtFib_Level_1,DoubleToStr(Fib_Level_1,3),FibPrice);
      txtFib_Level_2 = StringConcatenate(Xtra_txtFib_Level_2,DoubleToStr(Fib_Level_2,3),FibPrice);
      txtFib_Level_3 = StringConcatenate(Xtra_txtFib_Level_3,DoubleToStr(Fib_Level_3,3),FibPrice);
      txtFib_Level_4 = StringConcatenate(Xtra_txtFib_Level_4,DoubleToStr(Fib_Level_4,3),FibPrice);
      txtFib_Level_5 = StringConcatenate(Xtra_txtFib_Level_5,DoubleToStr(Fib_Level_5,3),FibPrice);
      txtFib_Level_6 = StringConcatenate(Xtra_txtFib_Level_6,DoubleToStr(Fib_Level_6,3),FibPrice);
      txtFib_Level_7 = StringConcatenate(Xtra_txtFib_Level_7,DoubleToStr(Fib_Level_7,3),FibPrice);
      
      
      
      FibName = "Brooky_Fib_"+FibOnChartNum;
      ObjectDelete(FibName);
      
      ObjectCreate(FibName,OBJ_FIBO,0,Time[9],High[24],Time[1],Low[1]);
      
      ObjectSet(FibName, OBJPROP_COLOR,Fib_Cbar_Color);
      ObjectSet(FibName, OBJPROP_WIDTH ,Fib_Cbar_Size);
      ObjectSet(FibName, OBJPROP_STYLE ,Fib_Cbar_Style);
      
      ObjectSet(FibName, OBJPROP_RAY,True);
       
      ObjectSet(FibName, OBJPROP_LEVELSTYLE,Fib_Level_Style);
      ObjectSet(FibName, OBJPROP_LEVELCOLOR,Fib_Level_Color);      
      ObjectSet(FibName, OBJPROP_LEVELWIDTH,Fib_Level_Size);  
       
          
      ObjectSet(FibName, OBJPROP_FIBOLEVELS,7);
      ObjectSet(FibName, OBJPROP_FIRSTLEVEL+0,Fib_Level_1);
      ObjectSet(FibName, OBJPROP_FIRSTLEVEL+1,Fib_Level_2);
      ObjectSet(FibName, OBJPROP_FIRSTLEVEL+2,Fib_Level_3);
      ObjectSet(FibName, OBJPROP_FIRSTLEVEL+3,Fib_Level_4);
      ObjectSet(FibName, OBJPROP_FIRSTLEVEL+4,Fib_Level_5);
      ObjectSet(FibName, OBJPROP_FIRSTLEVEL+5,Fib_Level_6);
      ObjectSet(FibName, OBJPROP_FIRSTLEVEL+6,Fib_Level_7);
      

     
      ObjectSetFiboDescription(FibName,0,txtFib_Level_1);
      ObjectSetFiboDescription(FibName,1,txtFib_Level_2);
      ObjectSetFiboDescription(FibName,2,txtFib_Level_3);
      ObjectSetFiboDescription(FibName,3,txtFib_Level_4);
      ObjectSetFiboDescription(FibName,4,txtFib_Level_5);
      ObjectSetFiboDescription(FibName,5,txtFib_Level_6);      
      ObjectSetFiboDescription(FibName,6,txtFib_Level_7);
//----
   return(0);
  }
//+------------------------------------------------------------------+

C'è un espediente come questo:

string FibPrice = " @ %$"

La domanda sorge spontanea: cosa significa questo?

È solo un insieme di personaggi o ha un senso?

 
RaYDeR.tr:

Ciao

Potresti per favore dirmi

Quando passo attraverso la funzione OrderSelect, gli ordini sono ordinati per numero d'ordine, non per biglietto

Per quale parametro sono ordinati questi ordini?

Ho notato che sono ordinati per tempo di apertura dell'ordine, cioè l'ultimo ordine è l'ultimo in termini di tempo di apertura, sia a mercato che in sospeso

È sempre così in questa funzione o è diverso?

Cioè, è sempre possibile ottenere un biglietto dell'ultimo ordine aperto/posto in questo modo?

Purtroppo succede anche il contrario. L'ho già fatto prima. Quindi è meglio cercare nella lista l'ultimo ordine per il tempo massimo di apertura.
 
hoz:

Ecco il copione:

C'è un espediente come questo:

La domanda sorge spontanea: cosa significa questo?

È solo un insieme di personaggi o ha un senso?

Lo esegui e vedi. Un "set" abbastanza utile.