Errori, bug, domande - pagina 72

 
k47:

Sì, c'è davvero un bug qui,DoubleToString è stato impostato per errore. Quindi il problema rimane solo nella documentazione.

A proposito, la documentazione non corrisponde alla realtà anche nella classe CAccountInfo per quanto riguarda i metodi di accesso alle proprietà per identificatore.

La InfoString() è definita comedoppiaInfoString(...) e allo stesso tempo

Il valore di ritorno è

true - se ha successo, false - se non è riuscito a recuperare il valore della proprietà.

Questo è difficilmente il modo in cui il tipo è specificato. Molto probabilmente, il valore viene restituito in due modi - via return e via parametro per riferimento. Questo è anche confermato dal fatto che il metodo restituisce una stringa quando viene utilizzato:

Lo stesso vale perdoubleInfoInteger() che in realtà restituisce long invece di bool, e doubleInfoDouble() che è anche scritto
true - se ha successo, false - se non ha avuto successo nel recuperare il valore della proprietà.

Anche se di nuovo, come potete vedere nell'immagine, solo un parametro è definito, quindi il riferimento è fuori questione....

Grazie per il messaggio. La libreria sta ancora cambiando, e apparentemente non abbiamo sempre il tempo di apportare modifiche alla documentazione della lingua. Lo capiremo e lo aggiorneremo.
 
Interesting:

Strano comportamento del tester di strategia...


Nella build 298, abbiamo rilevato uno strano comportamento del tester di strategia dopo aver annullato il processo di test (non l'avevo notato prima).

Risultato

Il pulsante "Annulla" diventa un pulsante "Avvia", il test viene fermato. Tutto sembrava andare bene, ma no - i parametri rimangono in grigio ed è impossibile modificarli.


Grazie. Riprodotto e corretto
 

Buon pomeriggio, potete dirmi perché la fermata per disabili è avventata?

Fondamentalmente è un codice di trasferimento senza perdita... Penso che molti lo troveranno utile...

{ int  LevelWLoss  = 10;
  int PosTotal=PositionsTotal();
   for(int i=PosTotal-1; i>=0; i--)
     {
                 MqlTick lasttick;
            SymbolInfoTick(Symbol(),lasttick);
      if (PositionGetInteger(POSITION_TYPE)==0) {
        if (PositionGetDouble(POSITION_SL)-PositionGetDouble(POSITION_PRICE_OPEN)<LevelWLoss*Point()) {
          if (lasttick.bid-PositionGetDouble(POSITION_PRICE_OPEN)>LevelProfit*Point()) {
         
          MqlTradeRequest BezubModif;
                  BezubModif.action= TRADE_ACTION_SLTP;
                  BezubModif.symbol= Symbol();
                  BezubModif.sl = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN)+LevelWLoss*Point(),_Digits);
                  BezubModif.tp = PositionGetDouble(POSITION_TP);
                  BezubModif.deviation=3;
          MqlTradeResult BezubModifResult;
                  OrderSend(BezubModif,BezubModifResult);                                                                                       
          }
        }
      }
      if (PositionGetInteger(POSITION_TYPE)==1) {
        if (PositionGetDouble(POSITION_SL)==0 || PositionGetDouble(POSITION_PRICE_OPEN)-PositionGetDouble(POSITION_SL)<LevelWLoss*Point()) {
          if (PositionGetDouble(POSITION_PRICE_OPEN)-lasttick.ask>LevelProfit*Point()) {

            MqlTradeRequest BezubModif;
                  BezubModif.action= TRADE_ACTION_SLTP;
                  BezubModif.symbol= Symbol();
                  BezubModif.sl = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN)-LevelWLoss*Point(),_Digits);
                  BezubModif.tp = PositionGetDouble(POSITION_TP);
                  BezubModif.deviation=3;
            MqlTradeResult BezubModifResult;
                  OrderSend(BezubModif,BezubModifResult);                     
          }
        }
      }
    }
  }
 
DEDMOROZ:

Buon pomeriggio, può dirmi perché il piede dell'handicappato è irritato?


Non puoi modificare il tuo post correttamente? C'è una funzione speciale per inserire il codice, come...
MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • 2010.02.23
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
 

Sviluppatori - Dove prendete quest'erba?

Il server deve essere così "fatto" da dichiarare le posizioni SELL come POSITION_TYPE_BUY (0), Buy deveessere POSITION_TYPE_SELL (1)...


Intendo la domanda di cui sopra e come funziona questo codice:

if (PositionGetInteger(POSITION_TYPE)==0)

PS

DEDMOROZ, hai provato a usare gli identificatori?

Inoltre è utile per dividere il codice di grandi blocchi in parti (OOP sta arrivando)...

 
Interesting:

Sviluppatori - Dove prendete quest'erba?

Il server deve essere così "fatto" da dichiarare le posizioni SELL come POSITION_TYPE_BUY (0), Buy deveessere POSITION_TYPE_SELL (1)...


Perché ci sono altre enumerazioni con ORDER_TYPE_BUY, DEAL_TYPE_SELL, BOOK_TYPE_BUY

 
stringo:

Perché ci sono altre enumerazioni con ORDER_TYPE_BUY, DEAL_TYPE_SELL, BOOK_TYPE_BUY

E cosa c'entra PositionGetInteger(POSITION_TYPE)? E cosa c'entrano POSITION_TYPE_BUY e POSITION_TYPE_SELL?


Un semplice esempio:

Ora ho una posizione Sell aperta in EUR (aperta dal mercato). Io lo vedo come Sell, ma il mio Expert Advisor lo vede come Buy (0).

Apro l'aiuto per PositionGetInteger(POSITION_TYPE) e vedo che il server ovviamente confonde qualcosa...


PS

L'uomo vede una posizione aperta, l'uomo vede l'aiuto e fa tutto correttamente (secondo lui), ma il server ha come sempre un'opinione "speciale"...

 
Interesting:

Un semplice esempio:

Ora ho una posizione Sell aperta in EUR (aperta dal mercato). Io lo vedo come Sell, ma EA lo vede come Buy (0).

Apro l'aiuto per PositionGetInteger(POSITION_TYPE) e vedo che il server è ovviamente confuso su qualcosa...


PS

L'uomo vede la posizione aperta, l'uomo vede l'aiuto e fa tutto correttamente (secondo lui), ma il server ha come sempre un'opinione "speciale"...

Prima di vedere una posa aperta, si dovrebbe prima chiamare la funzione PositionSelect
 
stringo:
Prima di vedere una posa aperta, si dovrebbe prima chiamare la funzione PositionSelect

Allora mi scuso, ho avuto tempo di fumare oggi...

 
DEDMOROZ:

Buon pomeriggio, potete dirmi perché la fermata per disabili è avventata?

Fondamentalmente è un codice di trasferimento senza perdita... Penso che molti lo troveranno utile...


   for(int i=PosTotal-1; i>=0; i--)//перебор позиций имеет смысл, если перенос в безубыток мультивалютный
     {//где-то тут должен быть выбор позиции, которую будем допрашивать :)
                 MqlTick lasttick;
            SymbolInfoTick(Symbol(),lasttick);//ask,bid всегда берутся с текущего символа.
o non hai bisogno dell'overshoot, o hai bisogno di chiedere, offrire sul simbolo della posa
Motivazione: