Errori, bug, domande - pagina 884

 
tol64:
Grazie. Lo terrò presente. Forse qualcuno può dirmi quando questa colonna è compilata e quando non lo è (come nel mio caso). Semmai, chiederò al Service Desk.
Questo è l'identificatore assegnato al tuo ordine dalla piattaforma di esecuzione - la borsa.
 
Yedelkin:

1. Inserire il codice correttamente.

2. come viene ottimizzato/selezionato il parametro m_periodo? Cioè, qual è il suo valore durante la sua ottimizzazione?

Grazie, l'ho capito, errore mio.
 
Rosh:
A una domanda vaga si può rispondere solo nello stesso modo vago: periodi grafici
Grazie, l'ho capito, errore mio.
 

Sono interessato ai vostri commenti sull'errore: " 2012.11.28 09:38:18 4194304 byte non disponibili "

 
AndreyS:

Sono interessato ai vostri commenti sull'errore: " 2012.11.28 09:38:18 4194304 byte non disponibili "

Non c'è abbastanza memoria.
 
Rosh:
Questo è l'identificatore assegnato al tuo ordine dalla piattaforma di esecuzione, la borsa.
Grazie. E per favore chiarite cosa si intende per sistema di trading esterno, nel caso in cui anch'io abbia frainteso.
 

Grazie a tutti per le vostre risposte.

Trovato questa incertezza con type_filling: solo un modo è permesso

string symbol = "EURUSD";
int flags = SymbolInfoInteger( symbol, SYMBOL_FILLING_MODE );
//разрешен только SYMBOL_FILLING_ALL_OR_NONE
allo stesso tempo SendOrder piazza ordini con lo stesso successo con
MqlTradeRequest request;
request.type_filling = ORDER_FILLING_FOK; //соответствующий флаг разрешения 1
così come con
request.type_filling = ORDER_FILLING_RETURN; //соответствующий флаг разрешения 0

E dopo aver piazzato con successo la proprietà effettiva dell'ordine piazzato ORDER_TYPE_FILLING sempre = ORDER_FILLING_RETURN anche se abbiamo specificato request.type_filling = ORDER_FILLING_FOK nella query

MqlTradeResult result;
OrderSelect( result.order );
int tpAfter = OrderGetInteger( ORDER_TYPE_FILLING );
//tpAfter всегда = ORDER_FILLING_RETURN

Mi sembra una mancata corrispondenza tra l'elenco delle modalità consentite e le proprietà effettive dell'ordine dopo il posizionamento

 

tol64

Rosh : Questo è l'identificatore che viene assegnato al tuo ordine dalla piattaforma di esecuzione - la borsa.

E per favore chiarite cosa si intende per sistema di trading esterno, nel caso in cui anch'io abbia frainteso.

Hai detto che

Hai detto che haitol64:

Yedelkin : Avete controllato il funzionamento degli ordini Stop Limit nel trading in borsa?

Sì, ho controllato attentamente e non compare nulla in questo campo al momento dell'attivazione dell'ordine.

Quindi, è stato controllato durante il trading di scambio o no?

 
Rosh:
Non c'è abbastanza memoria.

Grazie.

Si prega di aiutare ad analizzare la situazione, il seguente codice:


void CStrategyMA::FitnessFunction(int chromos)
{
  double res=0.0;
  
  // Выбор символа (m_strategy_symbol) из масива используемых символов (m_name_symbols[]) количаством (m_count_symbols)
  // Пример: m_count_symbols = 1; m_name_symbols[0] = "EURUSD.e";
  m_strategy_symbol = m_name_symbols[(int)MathRound(Colony[1][chromos]*(m_count_symbols-1))];
  
  // Выбор периода из масива по индексу (от PERIOD_M5 (индекс - 5) до PERIOD_D1 (индекс - 19))
  // Для наглядности:
  // ENUM_TIMEFRAMES PERIOD_INDEX [22] = {PERIOD_CURRENT,
  //                                      PERIOD_M1, PERIOD_M2,PERIOD_M3,PERIOD_M4,PERIOD_M5,PERIOD_M6,PERIOD_M10,PERIOD_M12,PERIOD_M15,PERIOD_M20,
  //                                      PERIOD_M30,PERIOD_H1,PERIOD_H2,PERIOD_H3,PERIOD_H4,PERIOD_H6,PERIOD_H8, PERIOD_H12,PERIOD_D1, PERIOD_W1,
  //                                      PERIOD_MN1};
  m_period = PERIOD_INDEX[(int)(MathRound(Colony[2][chromos]*5)+14)];
  
  // Освобождаю дескриптор загруженого ранее индикатора
  IndicatorRelease(m_handle);
  // Создаю новый индикатор с периодом - (int)(MathRound(Colony[3][chromos]*100)+1)
  // от 1 до 100
  m_handle=iMA(m_strategy_symbol,(ENUM_TIMEFRAMES)m_period,(int)(MathRound(Colony[3][chromos]*100)+1),0,MODE_EMA,PRICE_CLOSE);
  // Без использования Sleep(1000); - генерируется последующая ошибка при использовании в коде ф-ции: CopyBuffer
  // "ошибка доступа к историческим даным", хоть дескриптор и создан!?!?!?
  Sleep(1000);
  if(m_handle<0)
  {
    Alert("Ошибка при создании индикатора MA - номер ошибки: ",GetLastError()," ",m_strategy_symbol," ",m_period);
  } else
  {
    // Аналитический процес
    res = HistoryCheckTradeConditions();
  }
  AmountStartsFF++;
  Colony[0][chromos]=res;
}

 

Quando si utilizza questa funzione, errore "2012.11.28 09:58:32 4194304 byte non disponibili", aiutami a capire, aumentato il file di swap a 10GBt.

Inoltre, sono confuso da Sleep(1000); aiutatemi a capire.

 
A100: C'è un'incongruenza con type_filling: solo un modo è permesso mentre SendOrder piazza gli ordini con lo stesso successo che con stack e con

E dopo un piazzamento riuscito, la proprietà effettiva dell'ordine piazzato ORDER_TYPE_FILLING sempre = ORDER_FILLING_RETURN, anche se request.type_filling = ORDER_FILLING_FOK era specificato nella richiesta

Penso che ci sia una discrepanza tra l'elenco dei modi consentiti e le proprietà effettive dell'ordine dopo che è stato piazzato

Ho già provato a trattare questioni simili qui: https://www.mql5.com/ru/forum/2248/page5#comment_197730(due post di fila). Dopo di che ci sono stati alcuni cambiamenti nei materiali di aiuto. Ma sono diventato non interessato alla domanda in sé, quindi cosa sia cambiato esattamente - non posso dirlo. Date un'altra occhiata al manuale d'uso del terminale. Credo che la descrizione di queste modalità sia stata aggiornata anche lì.
OrderSend() Вопросы
OrderSend() Вопросы
  • www.mql5.com
дожидается ли получения request], или после отправки торгового запроса на сервер сразу же переходит к следующему оператору (блоку)?