Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1515

 

Signori, ho identificato la causa. Il problema è nel calcolo del saldo, che è necessario per consentire l'uscita di un giorno, e anche se questa formula non produce errori, non funziona.

   datetime TimeCheck_sb = StrToTime("1:00");

   if(TimeCurrent()==TimeCheck_sb)
     {
       sb1 = AccountBalance();
     }
// и это мне вы тут насоветовали на форуме!!!!!!


   далее там условие такое if(sb1 + sb1/100*LotRisk*(DayMultiplicatorProfit/100) > AccountBalance())
                               {

                                условие открытия ордера...

                                }

Se lo fai per divertimento, funziona.

AccountBalance()>0

Se lo fai per divertimento, non funziona.

sb1>0

doppio sb1; - è dichiarato se qualcosa...


La questione dovrebbe essere risolta con

 sb1 = AccountBalance();
 
Порт-моне тв:

Signori, ho identificato la causa. Il problema è nel calcolo del saldo, che è necessario per consentire l'uscita di un giorno, e anche se questa formula non produce errori, non funziona.

Se lo fai per divertimento, funziona.

se lo fai per divertimento, non funziona

doppio sb1; - è dichiarato se qualcosa...


Risolvere il problema con

   datetime TimeCheck_sb = StrToTime("1:00");

   if(TimeCurrent()==TimeCheck_sb)

non deve funzionare tutti i giorni... inoltre, è strano che funzioni regolarmente

 
Maxim Kuznetsov:

non deve essere attivata ogni giorno... in effetti, sarebbe strano se fosse attivata regolarmente

e come faccio a fissare il saldo all'inizio della giornata?

 

Scusate, ma non ho ancora capito come impostare KEY_TILDE su due eventi - Highlight e Unselect. Ottengo o l'attivazione simultanea e la visualizzazione di un messaggio nel terminale o solo questa opzione predefinita. Come può un idiota spiegare come fare?

if(id==CHARTEVENT_KEYDOWN)
     {
      switch(int(lparam))
        {
         case KEY_TILDE:
            ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTABLE,true);
            ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTED,true);
            Print("Выделить!");
            break;
            
            default:
            ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTABLE,false);
            ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTED,false);
            Print("Отменить выделение!");
            break;
        }
        
     }
 
DYM:

Scusate, ma non ho ancora capito come impostare KEY_TILDE su due eventi - Highlight e Unselect. Ottengo o l'attivazione simultanea e la visualizzazione di un messaggio nel terminale o solo questa opzione predefinita. Come può una persona senza cervello spiegare come fare?

Evento rilevato - controlla lo stato... Se è selezionato - deseleziona. Altrimenti viene selezionato.

 
DYM:

Scusate, ma non ho ancora capito come impostare KEY_TILDE su due eventi - Highlight e Unselect. Ottengo o l'attivazione simultanea e la visualizzazione di un messaggio nel terminale o solo questa opzione predefinita. Come può un idiota spiegare come fare?


//+------------------------------------------------------------------+
if(id==CHARTEVENT_KEYDOWN)
     {
      switch(int(lparam))
        {
         case KEY_TILDE: 
         TILDE(); 
         break;
        }
     }
//+------------------------------------------------------------------+
void TILDE()
  {
   if(ObjectGetInteger(0,"RectLabel",OBJPROP_SELECTABLE)==false)
     {
      ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTABLE,true);
      ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTED,true);
      Print("Выделить!");
     }
   else
     {
      ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTABLE,false);
      ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTED,false);
      Print("Отменить выделение!");
     }
  }
 
Порт-моне тв:

e come faccio a fissare il valore del saldo all'inizio della giornata?

qualcuno ha qualche idea?

 
Порт-моне тв:

Qualcuno ha qualche idea?

   if(AccountBalance()>0)
     {
      sb1 = AccountBalance()-DayProfit();
     }
................

//+--------------------------------------------------------------------------------------------------------------------+
//|  Суммарный профит в валюте депозита закрытых с определённой даты позиций                                           |
//+--------------------------------------------------------------------------------------------------------------------+
double DayProfit()
  { double p = 0; datetime st=StrToTime("1:00");
   for(int pos=OrdersHistoryTotal()-1;pos>=0;pos--)
     {
      if(OrderSelect(pos,SELECT_BY_POS,MODE_HISTORY)==true)
        {
         if(OrderCloseTime()>=st){p+=OrderProfit()+OrderSwap()+OrderCommission();}
        }
     }
   return(p);
  }
//+--------------------------------------------------------------------------------------------------------------------+
 
MakarFX:


Non so come ringraziarvi... se non per dire grazie mille per il vostro aiuto. Cercherò di non disturbarti più :)
 
Порт-моне тв:

qualcuno ha qualche idea?

catturare il cambiamento del giorno e calcolare il valore del saldo in quel momento.

Non per niente hanno detto "prendi l'indicatore giusto" - non si adatta a un paio di righe di codice. È un algoritmo abbastanza capiente.

catturare il cambiamento del giorno è facile, "il numero del giorno conosciuto ora non è uguale al numero del giorno prima", ma oltre è difficile