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

 
Chiripaha:

Mi sono imbattuto in questo interessante problema:

Scrivo una condizione banale:

,,,

Se i vostri prezzi A e B sono gli stessi, la condizione corretta potrebbe essere questa

if( А + 0.5 * Point < Б )
{
  // Выполнить действия
}
 
Aizec:

Posso avere un piccolo esempio di codice?

https://www.mql5.com/ru/code/10831
 


TarasBY:

Roger:
I numeri frazionari devono essere normalizzati prima di confrontarli.
Mislaid:

Se i vostri prezzi A e B, la condizione corretta potrebbe apparire così

Grazie mille per il vostro aiuto!

Normalizzo sempre i dati, ed è per questo che sono stato sorpreso da un fenomeno simile. Ma apparentemente non tutto è preso in considerazione nel processo di scrittura e dall'esperienza, quindi il consiglio di "normalizzare appena prima di confrontare i parametri da confrontare" è molto efficace. Tutto ha funzionato in modo coerente.

 

Buona sera a tutti.

Potete dirmi perché un ordine non si apre?

int ultimo;

int start()

(

if (Hour( ) == 12) // se si forma una candela di 12 ore su TF 60
last = iBarShift (Symbol (),0,iTime( NULL, 0, 0) ); // ricorda N di questa candela
if (last == 10) // e quando questa candela è N10

int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+300*Point, "jfh",123 ); // aprire l'ordine

)

ritorno(0);

Penso che iBarShift non funzioni perché il parametro iTime( NULL, 0, 0) ) restituisce il tempo in secondi, mentre a me serve nel formato D'04.04.2000 19:05 '.

DOMANDA 1. Quale funzione restituisce il tempo di apertura di una candela nel formato D'04.04.2000 19:05 '

Ho controllato - con questo formato la funzione iBarShift funziona e l'ordine si apre. Ma funziona solo se manca la prima condizione if (Hour( ) == 12)

DOMANDA 2 Perché iBarShift non funziona dopo la condizione if (Hour( ) == 12)

GRAZIE.

 
solnce600:

Buona sera a tutti.

Potete dirmi perché un ordine non si apre?

int ultimo;

int start()

(

if (Hour( ) == 12) // se si forma una candela di 12 ore su TF 60
last = iBarShift (Symbol (),0,iTime( NULL, 0, 0) ); // ricorda N di questa candela
if (last == 10) // e quando questa candela è N10

int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+300*Point, "jfh",123 ); // aprire l'ordine

)

ritorno(0);

Penso che iBarShift non funzioni perché il parametro iTime( NULL, 0, 0) ) restituisce il tempo in secondi, mentre a me serve nel formato D'04.04.2000 19:05 '.

DOMANDA 1. Quale funzione restituisce il tempo di apertura di una candela nel formato D'04.04.2000 19:05 '

Ho controllato - con questo formato la funzione iBarShift funziona e l'ordine si apre. Ma funziona solo se manca la prima condizione if (Hour( ) == 12)

DOMANDA 2 Perché iBarShift non funziona dopo la condizione if (Hour( ) == 12)

GRAZIE.


cioè tu (se ho capito bene) apri una posizione sulla 22a barra del frame orario

int start()
  {

if(iBarOfDayCalc(60)==22)
     int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+300*Point,"jfh",123 ); //открыть ордер

 return(0);
  }

//  фуннкцыя------------------------
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 26.02.2008                                                     |
//|  Описание : Возвращает расчётный номер бара от начала суток.               |
//|           : Нумерация баров начинается с 1 (единица).                      |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    tf - таймфрейм                       (0 - текущий таймфрейм)            |
//|    dt - дата и время открытия бара      (0 - текущее время)                |
//+----------------------------------------------------------------------------+
int iBarOfDayCalc(int tf=0, datetime dt=0) {
  if (tf<=0) tf=Period();
  if (dt<=0) dt=TimeCurrent();
  if (tf>PERIOD_D1) {
    Print("iBarOfDayCalc(): Таймфрейм должен быть меньше или равен D1");
    return(0);
  }
  double ms=MathMod(dt/60, 1440);      // количество минут от начала суток
  int    bd=MathFloor(ms/tf)+1;        // номер бара от начала суток

  return(bd);
}
 
r772ra:


Cioè, tu (se ho capito bene) apri una posizione sulla 22a barra del frame orario

Nel mio esempio - esattamente così, cioè sulla 22a candela.

Ma in generale - vorrei ricordare qualsiasi (con i parametri di cui ho bisogno) candela

e dopo di esso (memorizzato) candela sarà spostato ad una distanza desiderata (cioè, sarà - 5.6....100)

aprire un ordine.

Quindi, se non mi sbaglio, la funzione di Kim di cui sopra probabilmente non funzionerà per me,

perché conta le candele dall'inizio del giorno e funziona solo con 24 candele.

Penso di aver bisogno della funzione iBarShift che può ricordare qualsiasi candela.

(Per esempio ogni cinquantesima o centesima candela di qualsiasi candela di cui ho bisogno).

Ma questa funzione per qualche motivo non funziona(i dettagli li ho descritti nel primo post)

Vi sarei grato se poteste aiutarmi a trovare le risposte alle mie domande.

Grazie mille per la vostra partecipazione.

 

Buon pomeriggio, potreste per favore consigliarmi come fare in modo che dopo aver aperto questa particolare posizione il codice EA inizi a lavorare dall'inizio, quando faccio

se (ticketbuy>0)
{
ritorno;
}

Non voglio che apra altri ordini per altre condizioni e ne ho alcuni da aprire. Devo aprire molti altri ordini, grazie.

 
Vinin:

Se ci sono abbastanza buffer di indicatori, si può fare senza oggetti


ma come? se l'indicatore è in finestra, come si possono visualizzare le frecce sul grafico? io uso solo 4 buffer

 

Buon pomeriggio, scusi se mi intrometto in una conversazione in corso... Se hai un minuto ... Ho un indicatore che disegna la freccia su e giù ho bisogno di fare un EA per esso posso dire che ho appena iniziato a imparare muell e non mi occupo di indicatori

#proprietà indicator_chart_window

#proprietà indicator_buffers 2

#property indicator_color1 blue

#property indicator_color2 Red

//---- parametri di ingresso

extern int NumBars=500;

//---- buffer

doppio ExtMapBuffer1[];

doppio ExtMapBuffer2[];

doppia diffusione;

forse qualcuno ha un modello

 

Si prega di avvisare se qualcuno lo sa. Gepard 5.0 Expert Advisor su Forex4you sta aprendo alcuni trade con grandi minus. Dove posso regolare le impostazioni?