Errori, bug, domande - pagina 398

 

In diverse build recenti (inclusa la 458), due problemi di tester sono stati costantemente osservati su una delle due macchine:

1) Errore di avvio dell'agente:

EM 0 Core 1 11:44:11 processo agente avviato
QN 0 Core 1 11:44:11 in connessione con 127.0.0.1:3000
KI 0 Core 1 11:44:15 connesso
HO 2 Core 1 11:44:17 errore di sincronizzazione dell'agente tester
GM 2 Core 1 11:44:17 disconnesso
LK 0 Core 1 11:44:17 connessione chiusa

CQ 0 Tester 11:44:14 MetaTester 5 build 450 (16 maggio 2011)
MP 0 Server 11:44:14:14 MetaTester 5 avviato su 127.0.0.1:3000
LI 0 Avvio 11:44:14 inizializzazione finita
MR 2 127.0.0.1 11:44:18 chiudere socket
EI 0 127.0.0.1 11:44:18 login (build 450)
EJ 0 Tester 11:44:19 agente tester chiuso

2) Il terminale non risponde (clessidra) per circa 30 secondi quando si accede alla scheda agenti.

Si presume che i problemi siano legati al processore single core o alla mancanza di agenti remoti (remoti).

 
stringo:
In realtà la build 458 è già stata rilasciata.

quindi sì... Ma il problema rimane:

2011.05.27 19:19:57 Core 2 agente lento fallito
2011.05.27 19:19:57 Core 2 connessione chiusa
2011.05.27 19:19:57 Core 2 troppo lento agente. il tempo occupato è 3703 ms. il tempo medio è 915 ms
2011.05.27 19:19:55 Core 1 agente lento fallito
2011.05.27 19:19:55 Core 1 connessione chiusa
2011.05.27 19:19:55 Core 2 sincronizzazione comune completata
2011.05.27 19:19:54 Core 1 troppo lento agente. il tempo occupato è 3672 ms. il tempo medio è 915 ms
2011.05.27 19:19:53 iRU1 agente lento fallito
2011.05.27 19:19:53 iRU1 connessione chiusa
2011.05.27 19:19:53 Core 2 autorizzato (agent build 458)
2011.05.27 19:19:53 Core 2 connesso
2011.05.27 19:19:53 iRU1 agente troppo lento. il tempo occupato è 3672 ms. il tempo medio è 915 ms

 
MONTEGRO:

quindi sì... Ma il problema rimane:

Continuiamo a pensare.
 

Si prega di chiarire le seguenti sfumature:

1. algoritmo di controllo/elaborazione per SL/TP quando si invia una transazione aggiuntiva. Chiarimento per esempio.

Nota: tutte le richieste di trade hanno il parametro ORDER_FILLING_AON; c'è già una posizione lunga.

Scenario #1. Voglio comprarne di più (ovviamente, per lo stesso simbolo). Mando un trade con volume aggiuntivo e SL/TP aggiustato. Se la richiesta viene eseguita con successo, il risultato sarà: lotto aggiuntivo + SL/TP aggiornato?

Scenario #2. Voglio vendere. Sottopongo un trade con un lotto più piccolo senza specificare SL/TP (SL/TP = 0). La posizione rimanente avrà il suo lotto ridotto + SL/TP rimosso?

Scenario #3. Lo stesso dello scenario #2, solo cercando di impostare limiti SL/TP (consapevolmente impossibile per una posizione lunga). Risultato?

2. Algoritmo per controllare il volume di uno scambio. chiarirlo con un esempio.

Ci saranno dei cambiamenti nella combinazione "lotto minimo/passo minimo"?

Note: Tutte le richieste di trade hanno il parametro ORDER_FILLING_CANCEL oORDER_FILLING_RETURN; c'è già una posizione lunga di 1.0; min.lot = 0.1; min.step = 0.01;

Scenario 1. Sto cercando di uscire dal mercato (chiudere una posizione esistente con un trade inverso della stessa dimensione). Il mercato è una notizia, quindi cerco di ritirare almeno un po' (ORDER_FILLING_CANCEL o ORDER_FILLING_RETURN), dato che l'intero importo ha requotes. L'affare è parzialmente a 0,99 lotti. Di conseguenza, per chiudere completamente la posizione, ho bisogno di inviare un affare con 0,01 lotti, mentre non posso - il lotto minimo è 0,1. Cioè, devo prima aggiungere 0,09 lotti per ottenere 0,1 e poi provare a chiuderlo (già con ORDER_FILLING_AON)?

Scenario #2. Quando un trade è stato parzialmente chiuso e il volume della posizione rimanente è inferiore al passo minimo (completamento parziale a 0,999 lotti, e 0,001 lotti rimangono "appesi"). Ci sarà una tale situazione?

P.S. Idealmente, mi piacerebbe vedere una logica unificata di impostazione degli ordini che "chiuda" tutti i casi teoricamente possibili. Non l'ho trovato nella documentazione, forse me lo sono perso...

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
uncleVic:

Non c'è nessun errore nella libreria. Ci sono due sottigliezze nel lavorare con i dati degli indicatori usando la classe (che potrebbero non essere completamente descritte nell'aiuto).

1. Per rendere disponibili i dati dell'indicatore attraverso la classe, la classe dovrebbe copiare questi dati dall'indicatore. Per farlo, chiamate il metodo Refresh(int) se avete il minimo sospetto che i dati siano cambiati. Nel suo caso:

2. Per rendere i dati dell'indicatore disponibili attraverso la classe ad una "profondità" sufficiente, è necessario impostare le dimensioni dei buffer (di default le dimensioni dei buffer sono 256). Per fare questo, dopo aver creato l'oggetto, chiamate il metodo BufferResize(int). Nel suo caso:

Scusa se ti ho confuso. Risponderò ad altre domande.

Potete darmi almeno un semplice codice di indicatore usando la libreria standard, a causa della mancanza di documentazione ed esempi non riesco a capire come funziona. Per esempio, disegna frecce verdi sotto ogni barra quando tenkan sen>kijun sen e sono sopra la nuvola e rosse quando tenkan sen<kijun sen e sono sotto la nuvola.
Как использовать торговые классы Стандартной библиотеки при написании советника
Как использовать торговые классы Стандартной библиотеки при написании советника
  • 2010.11.10
  • Samuel
  • www.mql5.com
В статье рассказывается о том, как использовать основной функционал торговых классов Стандартной библиотеки при написании советников, в которых применяется открытие, закрытие и модификация позиции, проверка свободной маржи перед размещением торговых ордеров, размещение и удаление отложенных ордеров. Показано, как использовать торговые классы для получения свойств ордеров и сделок.
 

Flessibilità delle impostazioni dell'interfaccia - c'è un suggerimento per rendere mt5 più flessibile per l'utente, in termini di impostazioni per la visualizzazione dei nomi dei simboli, più specificamente - la possibilità di rinominare qualsiasi cioè non - non gbpusd - ma ... - Per esempio - non gbpusd ma ... sterlina", così come dividere le barre come - valuta e freccia giù, metalli, azioni, ciò che non sarebbe stato tutto in una pila, nel bar-divisione può anche aggiungere mini icone, come la valuta, il segno di una sterlina o una piccola carta verde, metalli - bene oro piccoli lingotti, ecc Approx. tale flessibilità impostazioni colori, lavagne e riquadri disponibili nella piattaforma "Pro Trader", spero di non suonare come la pubblicità, perché il vostro al testo naturalmente più facile e meglio... :)
Sarebbe anche bello se si potesse cambiare lo sfondo, sotto il simbolo nella lista dei simboli, così come il colore shifft, per esempio un maggiore evidenzia uno sfondo nero e font bianco, medio, blu e bianco e totalmente senza importanza, come ci sono nero su bianco ...

 
Graff:
Potete darmi almeno il codice più semplice dell'indicatore usando la libreria standard, perché a causa della mancanza di documentazione ed esempi non riesco a capire come funziona. Per esempio, disegna frecce verdi sotto ogni barra quando tenkan sen>kijun sen e sono sopra la nuvola e rosse quando tenkan sen<kijun sen e sono sotto la nuvola.
Allega il tuo "pesce" e, brevemente, i desideri. Se possibile (non posso promettere rapidamente) gli darò un'occhiata.
 

papaklass:

Algoritmo 2:

1. chiudere le posizioni in multipli del volume minimo consentito. Il tuo esempio di 0,99 lotti non è possibile, poiché il lotto minimo è 0,1 lotto. Altri partecipanti al mercato impostano i loro ordini come multipli di 0,1 lotti. Quindi il tuo esempio non è possibile.

2. vedi punto 1.

Quindi vuoi dire che se dopo l'esecuzione dell'ordine il volume della posizione diventa inferiore al minimo, allora questo ordine sarà rifiutato.

Sui server MQ, il passo=lotto minimo=0,01. Ci sono altri esempi in cui il passo<lotto minimo? Per controllare il comportamento del terminale.

Non potete aspettarvi alcuna risposta dagli sviluppatori.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
Graff:
Potete darmi almeno il codice più semplice dell'indicatore usando la libreria standard, perché a causa della mancanza di documentazione ed esempi non riesco a capire come funziona. Per esempio, disegna frecce verdi sotto ogni barra quando tenkan sen>kijun sen e sono sopra la nuvola e rosse quando tenkan sen<kijun sen e sono sotto la nuvola.

questo esempio di lavoro con bibla - basta costruire la linea tenkan
Da qui ti sarà più facile aggiungere altri 4 buffer per analogia e analizzarli (per le frecce).

Nota: ci sono almeno altri due modi per prendere i valori del buffer degli indicatori oltre a quello mostrato sopra. Quello mostrato non è l'unico possibile

#property indicator_chart_window
#property indicator_buffers  1
#property indicator_plots    1
#property indicator_color1   clrRed
#property indicator_type1    DRAW_LINE

#include <Indicators\Trend.mqh>  // подключили библу

input int tenkan=9;
input int kijun=26;
input int senkou=52;

CiIchimoku ichi; // объект индюка
int h; // его хендл

double Tenkan[]; // буфер для тенкана
//------------------------------------------------------------------
int OnInit()
{
  SetIndexBuffer(0, Tenkan, INDICATOR_DATA);
  ArraySetAsSeries(Tenkan, true);

  ichi.Create(Symbol(), Period(), tenkan, kijun, senkou); // создали буфера
  h=ichi.Handle(); // получили хендл
  return(0);
}
//------------------------------------------------------------------
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
  ichi.Refresh(0); // обновили индюк

  if(BarsCalculated(h)<rates_total) return(0); // если расчет не нужен
        
  int to_copy; // определяем число баров для копирования
  if(prev_calculated>rates_total || prev_calculated<=0) to_copy=rates_total; 
  else { to_copy=rates_total-prev_calculated; to_copy++; }

  // Номера буферов: 0 - TENKANSEN_LINE, 1 - KIJUNSEN_LINE, 2 - SENKOUSPANA_LINE, 3 - SENKOUSPANB_LINE, 4 - CHINKOUSPAN_LINE.
  if (CopyBuffer(h,0, 0,to_copy, Tenkan)<=0) { Print("ошибка"); return(0); }

  return(rates_total);
}
 
uncleVic:

c'è un difetto nelle classi e nell'aiuto: i flag della funzione Refresh non sono descritti
Motivazione: