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

 
NayTmeR:

Per esempio, quando la linea val1[c] attraversa 0,45 verso l'alto, il valore del tempo viene assegnato alla variabile TimeBegin

qual è la domanda? come memorizzare il tempo quando si attraversa? prima controlla se c'è un'intersezione, poi memorizza
 

Come si assegna questo tempo a una variabile?

 
eddy:
Beh, le frecce sono sulla barra di apertura.

Non sono sicuro di aver capito bene. Ci sono delle frecce sulla barra di apertura, ma disegnate dalla funzione corrispondente - OrderSend(). Queste frecce non sono collegate alle frecce disegnate da OrderModify(), vero? Ho capito che usando OrderModify(), non solo coloro le frecce, ma cambio anche il livello di stop loss, cambiando il valore della variabile SL? È scritto nell'aiuto:

bool OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE)

Cambia i parametri delle posizioni aperte in precedenza o degli ordini in sospeso.

Significa che cambia non solo il colore della freccia ma anche "cambia i parametri degli ordini aperti in precedenza". Suggerisce che dovrebbe cambiare le fermate e disegnare le frecce. Ma non lo fa per qualche motivo.

 

La parola "solo" si riferiva alla freccia, non a ciò che fa la funzione.

стрелки на баре открытия есть, но нарисованные соответствующей функцией - OrderSend(). Эти стрелки же не относятся к стрелкам, рисуемым OrderModify()?

Si imposta uno stop e/o un take, è così che cambiano le frecce. Cosa ti fa pensare che si debbano creare più frecce?

 
NayTmeR:

Come si assegna questo tempo a una variabile?

c'è una funzione per questo nel libro di kim
 
todem:
c'è una tale caratteristica nella collezione di Kim

Puoi essere più specifico? Dove lo trovo? Dove posso trovare la collezione di Kim?
 
eddy:

La parola "solo" si riferiva alla freccia, non a ciò che fa la funzione.

È possibile utilizzare la funzione per impostare uno stop e/o una ripresa, quindi le sue frecce cambieranno.

Il manuale di OrderModify() dice:

arrow_color - Colore delle frecce di modifica StopLoss e/o TakeProfit sul grafico. Se questo parametro manca o il suo valore è CLR_NONE, le frecce non appariranno sul grafico.

Cioè, per quanto ho capito, OrderModify() disegna dei bastoni perché dice "frecce di modifica", il che significa che non ci sono solo frecce di apertura/chiusura create da OrderSend, ma anche frecce di modifica create da OrderModify. E queste frecce MODIFICATION possono mancare solo se il parametro è assente o uguale a CLR_NONE. Ma il mio parametro è presente e uguale a "Verde". Ho capito che non c'è un parametro speciale responsabile della presenza o assenza di frecce di modifica, è controllato dall'assenza o uguaglianza del suo CLR_NONE. Giudico per analogia con OrderSend nello stesso helper:

arrow_color - colore della freccia di apertura sul grafico. Se il parametro manca o il suo valore è CLR_NONE, la freccia di apertura non viene visualizzata nel grafico.

 

Si prega di aiutare con la funzione isCloseLastPosByStop ().

Inserisco in MetaEditor la funzione isCloseLastPosByStop () (ma solo ciò che è scritto su https://www.mql5.com/ru/forum/107476/page21).

Dopo una compilazione non riuscita ottengo degli errori:

'(' - definizione di funzione inaspettata

't' - variabile non definita

't' - variabile non definita

'}' - parentesi sbilanciate

È questa funzione, come ho commentato nel resto del codice.

 

Ciao a tutti! Per favore, aiutate a combinare le seguenti cose. Il risultato dovrebbe essere: due linee che seguono il prezzo, una 20 pip sotto l'Ask,

Inoltre, ricevo un segnale acustico se il prezzo cambia di 20 punti per 1 tick.

Tutto funziona bene separatamente. Grazie in anticipo!

1) La linea è 20 pip sotto l'Ask.

//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'esperto |
//+------------------------------------------------------------------+
int start()
{
ObjectCreate("MyPriceLine", OBJ_HLINE, 0, 0, Ask-20*Point) ;
ObjectSet("MyPriceLine", OBJPROP_PRICE1, Ask-20*Point);
ritorno(0);
}

//+------------------------------------------------------------------+

2) Linea sopra la domanda di 20p.

//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'esperto |
//+------------------------------------------------------------------+
int start()
{
ObjectCreate("MyPriceLine", OBJ_HLINE, 0, 0, 0, Ask+20*Point) ;
ObjectSet("MyPriceLine", OBJPROP_PRICE1, Ask+20*Point);
ritorno(0);
}

//+------------------------------------------------------------------+

3) Tasso di variazione dei prezzi nel tempo.

#proprietà show_inputs

extern int int pips=2; //cambia Ask
extern double Time_=0.1; //c. ~ tick
extern bool all_from_view=true; //solo il simbolo corrente - false

int i, l, p, numero_di_caratteri;
stringa val[], on_screen;
int Ask_save[];

//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
void start(){
number_of_characters=SymbolsList(val, true);//scrivere gli strumenti e il loro numero nell'array val Chiamare la funzione SymbolsList
ArrayResize(Ask_save,numero di_caratteri);
if(numero di_caratteri == -1){ Alert("SymbolsList(string &Symbols[], bool Selected) failed"); return;}
if(!all_from_view_market){
numero_di_caratteri=1;
ArrayResize(Ask_save,number_of_characters);
ArrayResize(val,numero di_caratteri);
val[0]=Simbolo();
}

while(true&&!IsStopped()){ //se permesso e non fermato lo script continuerà

Alert("ricalcolare in "+Time_+" sec;)

for(i=0;i<numero di_caratteri;i++){ //calcolare il valore dello spread per i simboli dal market watch
if((Ask_save[i]-MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT))>=pips){
Alert(val[i]+", "+Periodo()+" cambiato al ribasso di "+DoubleToStr((Ask_save[i]-MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT)),0)+" pips");
PlaySound("timeout.wav");
}
se((MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT)-Ask_save[i])>=pips){
Alert(val[i]+", "+Periodo()+" cambiato al rialzo di "+DoubleToStr((MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT)-Ask_save[i]),0)+" pips");
PlaySound("email.wav");
}
Ask_save[i]=MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT);
}
Sleep(Time_*1000);//pause for sec.
}

/*
number_of_characters=SymbolsList(val, true);//scrivere gli strumenti e il loro numero nell'array val Chiamata della funzione SymbolsList
if(number of_characters == -1){ Alert("Error opening file in SymbolsList(string &Symbols[], bool Selected)"); return;}

while(true&&!IsStopped()){ //se consentito e non fermato lo script continuerà
on_screen="\r\n"; // rientro
for(i=0;i<numero di_caratteri;i++)//calcolare il valore dello spread per i simboli dalla revisione del mercato
on_screen=on_screen+val[i]+" spread cost = " + DoubleToStr(MarketInfo(val[i],MODE_SPREAD)*MarketInfo(val[i],MODE_TICKVALUE),0)+"\r\n";
Comment(to_screen);//display
Alert("ricalcolare");//segnala
Sleep(3000);//pausa per 3 secondi.
}
*/
}
void deinit(){Comment("");}
//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=


//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
//la funzione legge tutti gli strumenti finanziari dal Market Watch.
//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
int SymbolsList(string &Symbols[], bool Selected){
int Offset, SymbolsNumber; stringa SymbolsFileName;
if(Selected) SymbolsFileName = "symbols.sel"; altrimenti SymbolsFileName = "symbols.raw";
int hFile = FileOpenHistory(SymbolsFileName, FILE_BIN|FILE_READ);
if(hFile < 0) return(-1); if(Selected) { SymbolsNumber = (FileSize(hFile) - 4) / 128; Offset = 116; }
else { SymbolsNumber = FileSize(hFile) / 1936; Offset = 1924; }
ArrayResize(Symbols, SymbolsNumber);
if(Selected) FileSeek(hFile, 4, SEEK_SET);
for(int i = 0; i < SymbolsNumber; i++){Symbols[i] = FileReadString(hFile, 12); FileSeek(hFile, Offset, SEEK_CUR);}
FileClose(hFile);
return(SymbolsNumber);
}

 
globad:

Ciao a tutti! Per favore, aiutate a combinare le seguenti cose. Il risultato finale dovrebbe essere: due linee che seguono il prezzo una sotto Ask di 20 pip, ....

Questo è irrispettoso nei confronti di chi lo chiede. Imparare a postare correttamente il codice -> SRC