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

 

Ragazzi, sto ricevendo l'errore 130, per favore consigliatemi se è possibile. Per favore non criticare troppo, sono un principiante.

.
.
.
   double step = 0.0005;
   double val,c,r,res;
   string str;
   int i; //цикличесская
   int stp=5;
.
.
.
   c=(Ask+Bid)/2;
   r=(MathRound(c*1000))/1000;
   if((r-c)==0){
      res=r;
   }
   else{
      if((r-c)>0){
         res=r-step;
      }
      else {
         res=r+step;
      }
   }
.
.
.
      ResetLastError();
      OrderSend(Symbol(),OP_BUYLIMIT,0.01,res-stp*(i+1)*Point,3,res-(stp*(i+1)-100)*Point,res-(stp*(i+1)+5)*Point,"|",0,0,CLR_NONE);
      Print("98-",GetLastError());
.
.
...
 

Ciao a tutti) consigliatemi per favore - non riesco a capire come scrivere il codice (Esempio; 2 robot lavorano - ognuno ha il suo magik) la maggior parte degli ordini di acquisto o di vendita cadono sulla storia dell'ordine, cioè se l'ordine era una vendita, la prossima operazione è un ordine di acquisto - il problema è che non posso selezionare l'ultimo ordine e il magik insiemee quindi identificare il tipo di ordine per un particolare robot (solo una parte del codice funziona - se scelgo solo l'ultimo ordine della storia - funziona perfettamente quando il robot è uno e il secondo codice scritto per elencare tutti gli ordini con un numero magico stampa il suo numero e scrive il suo tipo ma perché poi non restituisce il valore ultimo e non riesco a capire perché) mi aiutano a riunirlo in un tutto ecco 1 e 2 codice;

1) codice per determinare l'ultimo ordine, o più precisamente il suo tipo

int orderBS;

int total1=OrdersHistoryTotal()-1;

if(OrderSelect(total1, SELECT_BY_POS, MODE_HISTORY) == true) // tipo di ordine

{ orderBS=OrderType();}

2) il codice conta tutte le compravendite eseguite e registra il loro numero e tipo di ordine, ma non visualizza l'ultimo ordine

int k ;

int orderBS;

se(OrdiniStoriaTotale()>0)

{ for(int O=OrdersHistoryTotal()-1; O>=0; O--)

{ if(OrderSelect(O,SELECT_BY_POS,MODE_HISTORY))

{ if(OrderMagicNumber()!=136) continua;

se(OrderMagicNumber()==136)

k=OrderMagicNumber();

orderBS=OrderType();

Alert("ultimo numero d'ordine 136 = ", "numero d'ordine nella storia=",O, "numero magico=",k, "ordine sat buy=",orderBS); }}}

COME RESTITUIRE L'ULTIMO ORDINE DALLA STORIA CON UN NUMERO MAGICO RICERCATO!!!


aiutami pliz!!!!!

 
Tema97:

Ciao a tutti) consigliatemi per favore - non riesco a capire come scrivere il codice (Esempio; 2 robot lavorano - ognuno ha il suo magik) la maggior parte degli ordini di acquisto o di vendita cadono sulla storia dell'ordine, cioè se l'ordine era una vendita, la prossima operazione è un ordine di acquisto - il problema è che non posso selezionare l'ultimo ordine e il magik insiemee quindi identificare il tipo di ordine per un particolare robot (solo una parte del codice funziona - se scelgo solo l'ultimo ordine dalla storia - funziona perfettamente quando il robot è uno e il secondo codice scritto per elenca tutti gli ordini con un numero magico stampa il suo numero di serie e scrive il suo tipo ma perché poi non restituisce il valore ultimo e non riesco a capire perché) aiutami a collegare questo in un tutto qui 1 e 2 codice;


1) Per incollare correttamente il codice sorgente nel forum, clicca su SRC e incolla il tuo codice nella finestra che appare.


2) Prova uno script come questo, abbozzato velocemente, non l'ho testato perché non ho ordini nella mia storia.

#property strict

void OnStart()
  {
   if(OrdersHistoryTotal()>0)
     {
      for(int i=OrdersHistoryTotal()-1; i>=0; i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
           {
            if(OrderMagicNumber()!=136) continue;
              {
               Print("Последний ордер с магик-номером 136: индекс ордера в истории = ",i,
                     " магик номер = ",OrderMagicNumber(),
                     " тип ордера = ",OrderType());
               return;
              }
           }
        }
     }
  }

3) Ricorda, se dopo if c'è solo un' istruzione, non devi mettere le parentesi graffe { }, ma se hai 2 o più istruzioni che dipendono da questo if, devi metterle dentro { }. Nel tuo esempio qui sopra, dopo la condizione if(OrderMagicNumber()==136) ci sono 3 istruzioni to=...; orderBS=...; e Alert(); ma non sono messe dentro { }.

 

"Un uomo solo non è un soldato sul campo!"

Ciao a tutti!

C'è qualcuno della LITMO(St. Petersburg State University of Information Technologies Mechanics and Optics), che vive a San Pietroburgo, con cui ci si può incontrare di persona e discutere di programmazione?
Per favore, contattatemi personalmente o via e-mail: leonid.belskiy@gmail.com !!!!!
 
paladin80:

1) Per incollare correttamente il codice sorgente nel forum, clicca su SRC e incolla il tuo codice nella finestra che appare.


2) Prova questo script, abbozzato rapidamente, non l'ho controllato perché non ho ordini nella storia.

3) Ricorda, se c'è solo un' istruzione dopo if, non devi mettere le parentesi graffe { }, ma se ci sono 2 o più istruzioni che dipendono da questo if, devi metterle dentro { }. Nel tuo esempio qui sopra, dopo la condizione if(OrderMagicNumber()==136) ci sono 3 istruzioni to=...; orderBS=...; e Alert(); ma non sono messe dentro { }.

- Fa lo stesso del codice 2 - l'ultimo non seleziona ((((((((((((

posso fare qualcosa come ????? all'ora di chiusura o nessuna selezione anche lì?

 
Ciao a tutti. Chi sa qual è la durata di un array statico unidimensionale? È la stessa cosa di una variabile locale o no?
 
i999i:
Ciao a tutti. Chi sa qual è la durata di un array statico unidimensionale? È la stessa cosa di una variabile locale o no?
Dopo l'esecuzione di una funzione, in cui l'array è dichiarato, devo cancellarlo o fare qualcosa con esso per liberare la memoria, o sarà cancellato da solo?
 
i999i:
Dopo l'esecuzione di una funzione in cui è dichiarato un array, deve essere cancellato o deve essere fatto qualcosa per liberare la memoria, o si cancellerà da solo?
Finché il programma è in esecuzione, esso (l'array) esiste
 
Vinin:
Finché il programma è in esecuzione, esso (array) esiste
Ma se mi serve per 1 tick all'ora e non mi serve per il resto del tempo ... come faccio a cancellarlo ... sta occupando memoria
 
Puoi dirmi quanto spesso il grafico viene ridisegnato da solo? (così come forzato daChartRedraw() )