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

 

Salve.

Qualche tempo fa, quando si visualizzano gli indicatori TRIX di tipo MTF sulla finestra di lavoro MT4, appare una linea extra di barre. Come ho scoperto su uno dei forum stranieri, questo succede nelle ultime versioni di MT4.

Posso agire indipendentemente (con le vostre istruzioni) per correggere questo problema, o questo effetto sarà corretto da voi nelle successive versioni di MT4.

Cordialmente, Evgeniy. 412500@gmail. com; 4125er@gmail.com

 
Craft:

Buon pomeriggio.

Potete dirmi come trovare la chiusura più alta in un array:

double hc = iClose(NULL, 0, iHighest(Symbol(), 0, MODE_HIGH, PERIOD_M1, kk));

Si fa così o mi sbaglio?

Non ho trovato nessuna risposta cercando "chiusura più alta".

Forse è così:

string sym;int PER=1;//таймфрейм
//+------------------------------------------------------------------+
//| script program                                                   |
//+------------------------------------------------------------------+
int init(){sym=Symbol();return(0);}
int start(){int bar=iHighest(sym,PER,MODE_CLOSE,iBars(sym,PER)-1,0);
  double hc=iClose(NULL,PER,bar);Print(sym," PERIOD_M",PER,"  max_close =",hc,"  Time =",
  TimeToStr(iTime(NULL,PER,bar),TIME_DATE|TIME_MINUTES));return(0);}
//+------------------------------------------------------------------+
 
MikeM:
Time[i] - tempo che corrisponde all'i-esima barra del grafico.
Non capisco i dati di "domani" sul grafico. Dove lo mostrano? Voglio oooh-ooh-ooh!!!

Questa è una versione molto vecchia del mio indicatore...
Stavo solo contando le barre fino al momento giusto per me per mettere la freccia lì - ma questa non è la versione giusta, perché in alcuni casi sono vacanze, e solo il tempo della sessione di trading e lo strumento (in questo caso è sberbank)

Ora ho riscritto completamente il codice e voglio che vada bene...

Voglio ottenere =) valori di tempo nell'asse X sotto l'ultima freccia blu, per controllare la posizione.

In effetti, la nuova versione dell'indicatore ha nei suoi array le informazioni sulla posizione della prossima freccia lungo l'asse X (tempo) e il prezzo, tutto ciò che resta è trasferirlo al grafico..... in generale, aiutatemi, ditemi come farlo gentilmente

Screenshot di una vecchia versione...

с

 
qualcuno qui sta rispondendo alle domande)
 

Buon pomeriggio. Potete dirmi, per favore, che in queste condizioni gli ordini non si aprono attraverso il livello. Cosa c'è di sbagliato qui?

double Mash_Price_1=iCustom(NULL,0,"mashka",0,0);
double Mash_Price_2=iCustom(NULL,0,"mashka",0,1);
double Mash_Price_3=iCustom(NULL,0,"mashka",0,2);

double Max_1,Max_2; //уровень цены 

if(Mash_Price_1>Max_1 && Mash_Price_2==Max_1 && Mash_Price_3<Max_1 || 

Mash_Price_1>Max_1 && Mash_Price_2 < Max_1 && Mash_Price_3<Max_1 ||

Mash_Price_1>Max_1 && Mash_Price_2==Max_1 && Mash_Price_3==Max_1)
{
Opn_B=true;
Opn_S=false;
}
if(Mash_Price_1<Min_1 && Mash_Price_2==Min_1 && Mash_Price_3>Min_1 ||
Mash_Price_1<Min_1 && Mash_Price_2 > Min_1 && Mash_Price_3>Min_1 ||
Mash_Price_1<Min_1 && Mash_Price_2==Min_1 && Mash_Price_3==Min_1)
{
Opn_B=false;
Opn_S=true;
}
}



while(true)
{
if(Total==0 && Opn_B==true)
{
RefreshRates();
SL=Bid-New_Stop(StopLoss)*Point;
TP=Bid+New_Stop(TakeProfit)*Point;
Print("Попытка открыть Buy. Ожидаем ответа...");
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP);
if(Ticket>0)
{
Print("Открыт ордер Buy ",Ticket);
return;
}
if(Fun_Error(GetLastError())==1)
continue;
return; 
}

if(Total==0 && Opn_S==true)
{
RefreshRates();
SL=Ask+New_Stop(StopLoss)*Point;
TP=Ask-New_Stop(TakeProfit)*Point;
Print("Попытка открыть Sell. Ждем ответа...");
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL,TP);
if(Ticket>0)
{
Print("Открыт ордер Sell ",Ticket);
return;
}
if(Fun_Error(GetLastError())==1)
continue;
return;
}
 
deyron:

Buon pomeriggio. Potete dirmi, per favore, che in queste condizioni gli ordini non si aprono attraverso il livello. Cosa c'è di sbagliato qui?


C'è un pulsante SRC per l'inserimento del codice

A che cosa sono uguali queste variabili?

double Max_1,Max_2; //уровень цены 
 
int Bar_Beg = iBarShift(Symbol(),0,Cur_Beg,false);//начальный бар
int Bar_End = iBarShift(Symbol(),0,Cur_End,false);//конечный бар
int Dif_Bar = Bar_Beg - Bar_End;//Разница баров для расчетов Мах и Мин

int High_1 = iHighest(Symbol(),0,MODE_HIGH,Dif_Bar,Bar_End); //Максимальное значение бара
int Low_1 = iLowest (Symbol(),0,MODE_HIGH,Dif_Bar,Bar_End); //Минимальное значение бара

Max_1=High[High_1];
Min_1=Low[Low_1];

E Mashka=(Alto[i]+Basso[i])/2;

 
deyron:

Ecco Mashka con il livello Min_1.

Ecco un'opzione se:


Verde Max_1,

dalla storia

Max_1 = 1.5485 Min_1 = 1.5461 Mash_Price_1 = 1.5496 Mash_Price_2 = 1.5495 Mash_Price_3 = 1.549

In quale direzione cercate i problemi?

Avete provato con la gestione degli errori?
 
Se ci fossero stati tentativi di aprire un ordine, sarebbe stato mostrato nei messaggi. Se non c'è nessun tentativo di aprire un ordine, perché dovrebbe esserci un errore. La questione è se le condizioni del passaggio di Macha attraverso i livelli sono impostate correttamente. Perché gli ordini si aprono molto più tardi del previsto quando i parametri sono hardcoded?
 

Domanda.

Perché la condizione non va

if(Close_1>Open_1 && ( Close_1-Open_1)>=30*Point) buffer[i]=High_1;

Esempio condizionale. \

Cerca tutto...ma non la dimensione in punti... Controllato tramite Comment(waste,5);

Cioè... la condizione if(Close_1>Open_1) va bene, ma la condizione ( Close_1>Open_1 && Close_1-Open_1)>=30*Point) perché NON...!!!

Cosa sto facendo di sbagliato?

Grazie in anticipo!!!)):