[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 140

 
valeryk:

bool NewBar()
{static datetime newbar;
bool res=false;
if(newbar==0)newbar=Time[0];
if(newbar!=Time[0]){res=true;newbar=Time[0];}
return(res);
}

Nuova presenza del bar.

Ho capito che il simbolo è messo al prezzo aperto della barra. E ho bisogno che sia al prezzo di chiusura.
Non sono riuscito a inserire il tuo codice perché non sono un programmatore. In particolare disapprova questo bool NewBar()
 
supernyb:
Ho capito che l'icona è impostata al prezzo di apertura della barra. Ho bisogno che sia al prezzo di chiusura.
Non sono riuscito a inserire il tuo codice perché non sono un programmatore. In particolare disapprova questo bool NewBar()
Notate il tempo di quotazione e il tempo di impostazione della barra: 15 minuti. Pensate che Close[0] possa cambiare durante questo tempo?
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   if(NevBar()) 
     {
     //в этом блоке размещайте ваш код
     }    
//----
   return(0);
  }
//-----------------------------------------------------------------------------+
// Функция контроля нового бара                                                |
//-----------------------------------------------------------------------------+
bool NevBar(){
   static int PrevTime=0;
   if (PrevTime==Time[0]) return(false);
   PrevTime=Time[0];
   return(true);} 
 

Un'altra volta, per favore. Ciao, ho preso lo script dal tutorial di S. Kovalev come base. Voglio fare un Expert Advisor per aprire un trade, mettere uno stop loss, prendere profitto, e poi aspettare che il trade si chiuda (cioè lo stop loss o il profitto), e solo allora riaprire il trade. Ho provato con le interruzioni di ciclo e ciclo. Per favore, consigliate come fare questo. Ho pensato che potrebbe essere più facile non impostare stop-loss e take-profit contemporaneamente, e che il prezzo si chiuda quando si avvicina a un certo livello. Ma non voglio farlo in questo modo perché ho paura dello slippage, e ogni punto è importante per me. Ho capito che ho aperto un affare o a volte un paio in una volta (è sbagliato anche questo?) ma non posso aprire nuovi affari dopo che l'affare è chiuso. O consigliare come prescrivere, in modo che il programma era in attesa di prestazioni stop-loss o tekaprofit, e solo allora ha continuato?

//+------------------------------------------------------------------+
int start() //---- funzione start
{
double //---- dichiarare le variabili
x,
y;
//+------------------------------------------------------------------+
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-15*Point,Ask+15*Point); //---- ordine a mercato per comprare e mettere uno stop e profitto a 15 punti dal prezzo di apertura
//+------------------------------------------------------------------+
while(x!=Ask-15*Point||y!=Chiedi+15*Punto) //---- della condizione voglio che il commercio sia chiuso fino a quando il commercio precedente è chiuso, cioèе. è possibile
{//----- tenere aperto un solo trade
continuare;//---- interrompere la condizione e passare al passo successivo
}
//+------------------------------------------------------------------+
return;//---- funzione return
}
//+------------------------------------------------------------------+

 

Se non ti interessa se hai uno stop o un take, perché non controlli semplicemente se ci sono ordini aperti o no?

se(Totale ordini()<1)

 

Potete dirmi cosa si può fare in questa situazione? Ho un indicatore. Devo disegnare una linea verticale nel grafico, poi chiamare le proprietà, copiare il numero e poi inserirlo nell'indicatore.

Sarebbe bello se l'indicatore fosse posizionato dove si clicca con il mouse.

O, almeno, sarebbe possibile spostarlo con il mouse sul grafico.


File:
indicator.mq4  3 kb
 
Begemot7:

Un'altra volta, per favore. Ciao, ho preso lo script dal tutorial di S. Kovalev come base. Voglio fare un Expert Advisor per aprire un trade, mettere uno stop loss, prendere profitto, e poi aspettare che il trade si chiuda (cioè lo stop loss o il profitto), e solo allora riaprire il trade. Ho provato con le interruzioni di ciclo e ciclo. Per favore, consigliate come fare questo. Ho pensato che potrebbe essere più facile non impostare stop-loss e take-profit contemporaneamente, e che il prezzo si chiuda quando si avvicina a un certo livello. Ma non voglio farlo in questo modo perché ho paura dello slippage, e ogni punto è importante per me. Ho capito che ho aperto un affare o a volte un paio in una volta (è sbagliato anche questo?) ma non posso aprire nuovi affari dopo che l'affare è chiuso. O consigliare come prescrivere, in modo che il programma era in attesa di prestazioni stop-loss o tekaprofit, e solo allora è andato oltre?

int ticket=-1;
int start()       //---- функеция старт            
  {
  double     //---- объявляю переменные 
  x,
  y;
  bool sel;
  //+------------------------------------------------------------------+
  sel=false;
  if(ticket>=0)
   {
    sel=OrderSelect(ticket,SELECT_BY_TICKET);if(!sel) ticket=-1;
   }
  if(ticket<0 || (sel && ticket>=0 && OrderCloseTime()>0)) ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-15*Point,Ask+15*Point);
   return;                                                          //---- функция return 
    }

O meglio così (in caso di riavvio dell'Expert Advisor):

int ticket=-1;
int init()
 {
  if(GlobalVariableCheck("TICKET")) ticket=GlobalVariableGet("TICKET");
  else ticket=-1;
 }
int start()          
 {
  bool sel;
  sel=false;
  if(ticket>0)
   {
    sel=OrderSelect(ticket,SELECT_BY_TICKET);if(!sel) ticket=-1;
   }
  if(ticket<=0 || (sel && ticket>0 && OrderCloseTime()>0))
   {
    ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-15*Point,Ask+15*Point);
    if(ticket>0) GlobalVariableSet("TICKET",ticket);
   }
   return; 
  }
 
r772ra:
Notate il tempo di quotazione, e il tempo in cui l'icona è stata impostata, 15 minuti, pensate che Close[0] possa cambiare durante questo tempo


Grazie, questo è proprio quello di cui avevo bisogno! Ho anche messo Close[1] invece di Close[0] in Star Price ed è risultato che il mio marchio è stato disegnato dai prezzi di chiusura. Non aspetta una barra come pensavo.
 
001:

Vorrei che l'indicatore fosse posizionato dove si clicca con il mouse.

Per ottenere le coordinate del punto in cui l'indicatore è stato lanciato, potete usare delle funzioni:

WindowXOnDropped()

WindowYOnDropped()

Prezzo e tempo:

WindowPriceOnDropped()

WindowTimeOnDropped()

 
valeryk:

bool NewBar()
{static datetime newbar;
Il bool res=false;
if(newbar==0)newbar=Time[0];
if(newbar!=Time[0]){res=true;newbar=Time[0];}
return(res);
}

Disponibilità di un nuovo bar .


Ecco cosa ha detto il guru sul tuo codice!

Nella tua versione, la newbar statica datetime non è inizializzata con zero , e questo non è corretto.

 
Sepulca:

Meglio così (nel caso in cui l'EA venga riavviato):

IMHO - meglio cercare il tuo ordine e vedere se è a mercato o chiuso, e come ha chiuso, per presa, stop o manualmente. Da qui inizieremo a ballare in diverse direzioni.

Allora tutto sarà accurato. E le variabili globali possono essere perse...

Motivazione: