[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 56

 
first_may:


Sì, sono d'accordo, l'ho pronunciato male. Dopo aver letto l'aiuto, ho deciso di scriverlo così:

// l'Expert Advisor può piazzare ordini ogni giorno della sessione
// durante il periodo da 10-45 a 18-30
if (Hour()>=10 && Minute()>=45 && Hour()<=18 && Minute()<=30)
{
...
}

È questa la condizione corretta per controllare l'ora?


No. Non farai trading con questa condizione, poiché Minute()>=45 && Minute()<=30 è impossibile in linea di principio.

 
sergeev:

No. Non farai trading con questa condizione perché Minute()>=45 && Minute()<=30 è impossibile in linea di principio


Quindi non si possono confrontare ore e minuti separatamente? Così, 11-55, per esempio, corrisponde alla prima condizione, come 11>=10 & 55>=45, ma non alla seconda, come 11<=18 & 55<=30. Anche se nella vita reale, 11-55 è solo nel vintervallo di ore da 10-45 a 18-30.
 
first_may:

Si scopre che non possiamo confrontare ore e minuti separatamente? Per esempio 11-55 si adatta alla prima condizione, poiché 11>=10 e 55>=45, ma non alla seconda, poiché 11<=18 e 55<=30. Anche se nella vita reale, 11-55 è solo nel vintervallo di ore da 10-45 a 18-30.

dovete creare il vostro orario di inizio e di fine con, ad esempio, StrToTime
 
sergeev:

dovete creare i vostri tempi di inizio e fine, per esempio StrToTime


Qui, usando l'ultima ora conosciuta del server, ha scritto:
if (TimeCurrent()>=StrToTime("10:45") && TimeCurrent()<=StrToTime("18:30"))
{
...
}

Ora 11-55 cadrà nell'intervallo 10-45-18:30?

 
first_may:

L'11-55 cadrà ora tra il 10-45 e il 18-30?

Sì.
 
sergeev:
Sì.


Grazie mille! :)
 

Gente, con tutte queste variabili globali e locali, sto per iniziare a correre a piedi nudi e a soffiare passeri. Amico, non capisco perché ci sia così tanto mal di testa in mezzo al nulla!!!!

int Orders=0;                          // Объявление глобальной еременной суммы ордеров
int start()                            // Спец. функция start
  {
     if (MA2_2<MA1_2 && MA2_1>MA1_1)  //Сигнал на пересечении МА
        {
          if (OrdersTotal()>= 1) 
              return(0);               //Если ордеров больше 1, уходим.
   
          SL = 30;                     // Стоп лосс
          TP = 12;                     // Тейк профит
          S_Price = Low[1] - 1* Point; // Уровень установки SELLSTOP
          if (OrderSend (Symbol(), OP_SELLSTOP, Lots, S_Price, 0, SL, TP, "My order", Magic)>0) // Установка
//ордера SELLSTOP. Если OrderSend возвращает больше 0, то выполняем следующее.
            {
               Orders++;               //Увеличить величину Orders на 1. 
               Alert ("Ордер выставлен.Orders = ",Orders ); //Вывод нового значения Orders.
            }
        }    
   return(0);                             // Выход из start()
  }
Per quanto ne so dal tutorial MQL4, ora il nuovo valore della variabile globale Orders dovrebbe essere uguale a 1. La prossima iterazione dovrebbe essere 2, poi 3. Allora 4. E così via, fino a quando l'Expert Advisor piazza ordini in sospeso. Ma non capisco perché l'EA non piazza ordini pendenti! Dopo aver piazzato un altro ordine SELLSTOP pendente, ogni volta vedo solo un messaggio: Ordini = 1! Qual è la ragione? Può essere a causa di MetaEditor?
 
vovan-gogan:

Gente, con tutte queste variabili globali e locali, sto per iniziare a correre a piedi nudi e a soffiare passeri. Amico, non capisco perché ci sia così tanto mal di testa in mezzo al nulla!!!!

Per quanto ne so dal tutorial MQL4, ora il nuovo valore della variabile globale Orders dovrebbe essere uguale a 1. La prossima iterazione dovrebbe essere 2, poi 3. Allora 4. E così via, fino a quando l'Expert Advisor piazza ordini in sospeso. Ma non capisco perché l'EA non piazza ordini pendenti! Dopo aver piazzato un altro ordine SELLSTOP pendente, ogni volta vedo solo un messaggio: Ordini = 1! Qual è la ragione? Può essere a causa di MetaEditor?

La ragione è che hai più ordini di mercato aperti su questo conto di trading.
 
Roman.:

La ragione è che hai più ordini di mercato aperti su questo conto di trading.

La cosa più triste è che questo accade nel tester. e gli ordini pendenti sono piazzati dall'EA, ma gli ordini sono sempre uguali a 1
 
vovan-gogan:

La cosa più triste è che questo succede nel tester. L'Expert Advisor piazza ordini pendenti e gli ordini sono sempre uguali a 1

Credo che non abbia formulato correttamente la sua domanda.
Motivazione: