[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 425

 
Elenn:


Qualsiasi variabile viene persa quando si esce dal programma (riavvio del computer, ecc.). Tranne le variabili globali, perché sono memorizzate sul disco rigido. Ma possono essere solo di tipo doppio. Cosa fare se è necessario memorizzare variabili di altri tipi (int o stringa per esempio)? Cosa non è chiaro qui?

Il tipo di variabile.

Cioè il G.P. può essere solo numeri reali. È anche possibile dichiarare qualsiasi variabile globale per un dato programma all'interno del programma, si dice qui

 

Saluti MQL guru!

Aiuta un principiante a scrivere un pezzo di codice: so che è facile per te, ma per un principiante .....

La condizione - per chiudere diverse posizioni aperte un lato alla volta secondo la stessa condizione (per me, dopo che il prezzo ha attraversato una MA)

Ho provato per un paio di giorni, ho usato alcuni esempi dagli script di Kim e Sergey (non ci sono altre informazioni su di lui), ma non funziona niente.

Ho tre ordini aperti e solo l'ultimo deve chiudere per condizione.

Secondo la condizione, ma uno alla volta. Voglio che siano chiusi tutti insieme al primo incrocio...

Questo è il modo in cui ho provato, ora non si chiude affatto.


//+------------------------------------------------------------------+
//| Controlla l'ordine di chiusura Buy |
//+------------------------------------------------------------------+
void CheckForClosebuy()
{
double maclosebuy;
//---- fare trading solo per i primi tik della nuova barra
if(Volume[0]>1) return;
//---- ottenere la media mobile
maclosebuy=iMA(NULL,TF,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//----
for(int i=0;i<OrderMagicNumber()==MAGIC;i++)
{
while (i>0)
{

if (Open[1]>maclosebuy && Close[1]<maclosebuy)
OrderClose(OrderTicket(),OrderLots(),Bid,3,Aqua);
continue;
}
}
return(0);
}

 
Elenn:

"Non lamentarsi" non è proprio un concetto matematico.

È scritto qui:


Ci sono variabili globali del terminale client, sono doppie - https://book.mql4.com/ru/variables/globals sono per lo scambio tra EAs

E ci sono semplicemente variabili globali, possono essere di qualsiasi tipo https://book.mql4.com/ru/variables/types sono all'interno di un EA

Qual è il suo compito?

 

Buona sera, sono completamente bloccata qui. Sto pasticciando con il codice, che dovrebbe aprire due ordini, buystop e sellstop, e questo è tutto. Non sembra essere un codice molto intelligente, tutto sembra chiaro, ma apre cinque ordini, e questo è tutto! Ho spulciato i suoi avvisi durante il debug, ma si è rivelata una cosa assolutamente incredibile, apre prima due barre (2011.06.04 20:20:48 2011.02.10 19:00 per EURUSD valanga, H1: Alert: OrderType ( )0) Non può, non può essere!!!!!! Beh, non ha niente con cui aprirli! No way!!!!!

Ha solo un tipo di ordine OP_BUYSTOP e OP_SELLSTOP. E a distanze di 20pp su e giù.

Il mio computer è difettoso?

Cito // 0 - OP_BUY comprare
1 - OP_SELL vendere
2 - OP_BUYLIMIT in attesa del limite di acquisto
3 - OP_SELLLIMIT limite di vendita differito
4 - OP_BUYSTOP in attesa di Buy Stop
5 - OP_SELLSTOP Stop di vendita in sospeso

Non ci possono essere altri valori.


//

Comunque, non sono scioccato, ma sono in una situazione di stallo. Di seguito il codice e lo screenshot

//+------------------------------------------------------------------+
//|                                                   ля лавин б.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
extern double stoploss=0; extern double takeprofit=20;extern int otstup=20; extern datetime expiration=0;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
  
  
  
  int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;double price; int stsBUY;int stsSELL;double Price;int C=0;
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
int X,Y; double price=(Ask+Bid)/2;            

       Alert ("OrdersTotal()",OrdersTotal());
       
       if(C==0){ Price = price ;  C=1;}


 for(int i=OrdersTotal();i>0;i--){Alert ("i", i);Alert ("OrderType( )", OrderType( ));OrderSelect(i,SELECT_BY_POS );if(OrderSymbol()==Symbol()&&OrderMagicNumber( )==1000){
if(OrderType( )==OP_BUYSTOP){X++;Alert ("X-v tsikle", X);}}}Alert ("X", X);
if (X==0){Alert ("Price", Price);Alert ("Price +otstup*Point",Price +otstup*Point);Alert ("Price+takeprofit*Point+otstup*Point", Price+takeprofit*Point+otstup*Point);


   tiket= OrderSend( Symbol(), OP_BUYSTOP,  volume*A, Price +otstup*Point, Point* 3, R1, Price+takeprofit*Point+otstup*Point, "OP_BUYSTOP", 1000,  expiration, Red); 
   Alert ("OP_BUYSTOP", GetLastError( )); }
   

 for ( i=OrdersTotal();i>0;i--){Alert ("i", i);Alert ("OrderType( )", OrderType( )); OrderSelect(i,SELECT_BY_POS );if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()) { 
if(OrderType( ) ==OP_SELLSTOP) { Y++;Alert ("Y-v tsikle", Y);}}}Alert ("Y", Y);
 if (Y==0){ 
 
 
   tikett= OrderSend( Symbol(), OP_SELLSTOP,  volume*A, Price -otstup*Point, Point* 3,R2, Price-takeprofit*Point-otstup*Point, "OP_SELLSTOP" , 2000,  expiration,C'0,128,255' );
    Alert ("OP_SELLSTOP", GetLastError( )); 
    } 
   
//----
   return(0);
  }
//+------------------------------------------------------------------+

Non so proprio cosa pensare.

 

Le variabili X b Y sono il numero di ordini di bypass e sellstop.

Nel log, si può vedere che l'ordine viene attivato per primo, bypassando l'ordine, e non c'è nessun errore. Poi improvvisamente si scopre che quando controlliamo il tipo di ordine, abbiamo un ordine di acquisto con una costante numerica di zero. ecc.

Forse la funzione warrantsend è difettosa?

E solo allora, gli ordini 5 e 4 appaiono!!!


 
Dimka-novitsek:

Buona sera, sono completamente bloccata qui.

Ho l'impressione che lei sia senza speranza. Hai già un consulente in modo frammentario, e stai mettendo vecchi errori in ogni nuova versione. Sostituire tutto

 for(int i=OrdersTotal();i>0;i--)

con .

 for(int i=OrdersTotal()-1;i>=0;i--)
 
Snaf:


Qual è il suo compito?

Il mio compito è quello di essere in grado di memorizzare diversi tipi di dati e di potervi accedere rapidamente. Penso che sarebbe lungo attraverso i file. Attraverso le variabili globali può essere veloce, ma possono solo memorizzare il tipo doppio. Questo è quello che sto pensando.
 
Elenn:
Il mio obiettivo è quello di essere in grado di memorizzare diversi tipi di dati con la possibilità di accedervi rapidamente. Penso che ci vorrebbe molto tempo per utilizzare i file. Le variabili globali possono essere veloci, ma possono memorizzare solo il tipo doppio. Quindi mi chiedo cosa fare.
Non ci vorrà molto tempo attraverso un file. Sarà piuttosto veloce. C'è ancora un'altra variante. È possibile memorizzare dati in oggetti grafici. I nomi sono scritti in anticipo, ed è possibile memorizzare tipi interi e frazionari nei valori, data in coordinate di data. Il tipo di stringa nella descrizione dell'oggetto
 
Memorizzare i dati in oggetti. Facile e veloce da raccogliere. Facile da cercare. Facile da cercare. Conveniente.
 
Porter:
Memorizzare i dati in oggetti. Facile e veloce da raccogliere. Facile da cercare. Facile da cercare. Conveniente.

E come funziona l'archiviazione a oggetti e cosa succede agli oggetti in caso di crash del computer?
Motivazione: