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

 

Qualcuno può consigliare come trovare il simbolo corrente (evidenziato) della finestra del grafico tra quelli aperti, non quello con lo script/advisor allegato, ma quello che è attualmente attivo nel terminale (come si dice anche nel focus)

 
harbor:

Qualcuno può consigliare come trovare il simbolo corrente (evidenziato) della finestra del grafico tra quelli aperti, non quello con lo script/advisor allegato, ma quello che è attualmente attivo nel terminale (come si dice anche nel focus)

Ottiene il descrittore della finestra in cima alla sequenza Z delle finestre del grafico. Poi ottenere l'intestazione basata su di essa e analizzarla.
 
Zhunko:
Ottiene il descrittore della finestra in cima alla sequenza Z delle finestre del grafico. Allora prendi l'intestazione e analizzala.


Beh, mql4 sembra avere solo una funzione conWindowHandle

Ma sto facendo una dll, è possibile farlo attraverso winapi in qualche modo? C'è una funzione chiamataGetWindowText da handle

Come faccio a prendere la maniglia?

 
harbor:


Beh, mql4 sembra avere solo una funzione conWindowHandle

Ma sto facendo una dll, è possibile farlo attraverso winapi in qualche modo? C'è una funzione chiamataGetWindowText da handle

Come faccio a prendere la maniglia?

Bene, nella DLL è necessario ottenere l'handle della finestra in cima alla sequenza Z. C'è un cliente MDI. È il genitore delle finestre del grafico. Ecco dove prendere quel descrittore.
 
Si prega di consigliare cosa succede se si scambia EURJPY e USDJPY con lotti uguali (se non uguali). Forse qualcuno l'ha sperimentato (ho bisogno di una variante di calcolo)
 
YOUNGA:
Si prega di consigliare cosa succede se si scambia EURJPY e USDJPY con lotti uguali (se non uguali). Forse qualcuno l'ha sperimentato (ho bisogno di una variante di calcolo)
Calcolo di cosa?
 
YOUNGA:
Si prega di consigliare cosa succede se si scambia EURJPY e USDJPY con lotti uguali in direzioni diverse (o se non sono uguali). Forse qualcuno ha provato (ho bisogno di una variante di calcolo)

Qui EUR e USD sono la valuta di base, e il lotto è calcolato in essa. Cioè per la prima coppia 1 lotto è 100.000 EUR, per la seconda è 100.000 USD, in entrambi i casi comprato/venduto per Yen.
 


Lasciatemi spiegare se aprite un lotto su ogni coppia EURJPY e USDJPY allora il lotto EURUSD dovrebbe essere 1 punto di cambiamento nel prezzo di EURUSD qualcosa deve accadere con il sintetico EURJPY/USDJPY poiché sono correlati



 

Cerco di codificare la seguente idea.

Se l'ora è 01.00.00. o 03.00.00.

Aprire un ordine verso l'alto.

In altre occasioni, aprite un ordine al ribasso.

PROBLEMA Il programma compila alle 01:00:00 e apre un ordine di acquisto ma non legge ||| o qualcosa dopo di esso.

if(Hour( )==01 && Minute( )==00 && Seconds()==00||Hour( )==03 && Minute( )==00 && Seconds()==00 )

Cioè alle03.00.00 il tester non apre una posizione di acquisto, ma una posizione divendita.

Tutte le altre offerte sono aperte in conformità con il codice.

  if(Hour( )==01 && Minute( )==00 && Seconds()==00||Hour( )==03 && Minute( )==00 && Seconds()==00 )
 
    
   {  
      if (Bid==Price  )
     
  int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP );
  }
  else
  {
  SL=NormalizeDouble (Price+3000*Point, Digits);         
  TP=NormalizeDouble (Price-100*Point, Digits);
  Ticket=OrderSend(Symbol(),OP_SELL,0.1,Bid,3,SL,TP );
 }
 }
 }

Делал два заголовка if ...... вообще не открывает сделки

 if(Hour( )==01 && Minute( )==00 && Seconds()==00 )
  if(Hour( )==03 && Minute( )==00 && Seconds()==00)
    
   {  
      if (Bid==Price  )
     
  int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP );
  }
  else
  {
  SL=NormalizeDouble (Price+3000*Point, Digits);         
  TP=NormalizeDouble (Price-100*Point, Digits);
  Ticket=OrderSend(Symbol(),OP_SELL,0.1,Bid,3,SL,TP );
 }
 }
 }
Подскажите - как сделать так что бы в 03.00.00. открывалась сделка на покупку? Спасибо
 
solnce600:

PROBLEMA Il programma compila, a 01.00.00 apre una compravendita, ma non legge ||| e il carattere dopo di esso.

if(Hour( )==01 && Minute( )==00 && Seconds()==00||Hour( )==03 && Minute( )==00 && Seconds()==00 )

Cioè alle03.00.00 il tester non apre una posizione di acquisto, ma una posizione divendita.

Tutte le altre offerte sono aperte in conformità con il codice.


Beh, per cominciare, abituatevi a mettere le staffe dove ne avete bisogno. Così:

if((Hour( )==01 && Minute( )==00 && Seconds()==00) || (Hour( )==03 && Minute( )==00 && Seconds()==00))
In effetti, si dovrebbe avere un intervallo di tempo, non un valore fisso. La vostra logica non è affatto corretta. Non 1 ora O 3 ore, ma da 1 ora a 3 ore!