Cancellazione nel tester - pagina 5

 
JRandomTrader #:

Ma quando si lavora su FORTS non si dovrebbe fare affidamento sui dati di posizione.

I miei robot tengono traccia dei loro scambi e ricordano il prezzo iniziale di apertura della posizione (non dopo l'ultima compensazione), e lo usano per calcolare profitti, SL, ...

A proposito, un'altra ragione per non fare affidamento sui dati di posizione: FORTS è netting, e diversi robot possono fare trading sullo stesso simbolo più il trading manuale. E cosa è praticamente utile da questa posizione combinata?

Così ogni robot ricorda e "guida" la sua posizione.

 
JRandomTrader #:

Prendi quest'ultimo prezzo medio e il volume della posizione, il prezzo del nuovo trade e il suo volume. Tutto sarà calcolato correttamente.

Sì, sì, ora ho capito... dopo aver chiesto a me stesso - ho capito :-)
 
JRandomTrader #:

A proposito, un'altra ragione per non fare affidamento sui dati di posizione: FORTS è netting, e diversi robot più il trading manuale possono operare sullo stesso simbolo. E cosa è praticamente utile da questa posizione combinata?

Così ogni robot ricorda e "guida" la sua posizione.

spc. Ci sono naturalmente tutti questi scambi e posizioni di mercato - SONARELY? (NELLA STESSA DIREZIONE)?
 
Roman Shiredchenko #:
spc. Ci sono naturalmente tutti questi scambi di mercato e le posizioni sono SONARELY? (IN UNA DIREZIONE)?

I robot possono avere diverse strategie, di tendenza e controtendenza, e possono lavorare su diversi timeframe, quindi le pose possono essere in entrambe le direzioni. E in MT si può vedere solo il "totale".

 
JRandomTrader #:

I robot possono avere diverse strategie, di tendenza e controtendenza, e possono lavorare su diversi timeframe, quindi le pose possono essere in entrambe le direzioni. E in MT si può vedere solo il "totale".

cioè puoi essenzialmente solo tenere un registro di trading dedicato per ogni direzione e questo è tutto... :-)

Questo è difficile, naturalmente... tutto virtuale - tutti i pro e i contro. C'è solo una posizione in comune... Reti.

È certamente una presa in giro - se si fa tutto con uno strumento...

 
Roman Shiredchenko #:

cioè si può essenzialmente solo tenere un registro commerciale dedicato per ogni linea di business e questo è tutto... :-)

È difficile, naturalmente... tutto è virtuale - tutti i pro e i contro. C'è solo una posizione in comune... Reti.

Certo, è una presa in giro - se si fa tutto su uno strumento...

Ma non ci sono molte opzioni qui. O un robot "ideale" sul simbolo, o la diversificazione - diversi robot reali.

 
JRandomTrader #:

E non ci sono molte opzioni qui. O un robot "perfetto" sul simbolo, o la diversificazione - diversi reali.

Se possiamo fare una considerazione generale: a parte il trasferimento dei prezzi di apertura della posizione cumulativa dopo la compensazione, quali sono le insidie "nascoste" a cui vale la pena prestare attenzione quando si fa trading?

Ci sono essenzialmente commissioni, scambi - penso che tu possa vederli. E la storia degli accordi e delle posizioni si può contare... (è così che secondo l'algoritmo di trading la posizione reale o le sue parti - erano SOLO nel più!)

A cos'altro pensi che dovremmo prestare attenzione quando facciamo trading?

 
Roman Shiredchenko #:

Posso fare un'osservazione generale: a parte il trasferimento dei prezzi di apertura per le posizioni aggregate dopo la compensazione, a quali altre insidie "nascoste" bisogna fare attenzione quando si fa trading?

Ci sono essenzialmente commissioni, scambi - penso che tu possa vederli. E la storia degli accordi e delle posizioni si può contare... (è così che secondo l'algoritmo di trading la posizione reale o le sue parti - erano SOLO nel più!)

A cos'altro pensi che dovremmo prestare attenzione quando facciamo trading?

Quella commissione, che è visibile nella transazione - è solo la commissione dello scambio. La commissione del broker non è visibile nella transazione. Almeno, è così per il broker che lo apre.

Guardo le offerte di OnTrade (o OnTradeTransaction), le calcolo immediatamente e le scrivo in State e in log.

Voglio aggiungere per sicurezza: dovete tenere a mente che un ordine può causare diverse transazioni con volume parziale.

 
JRandomTrader #:

La commissione visibile nella transazione è solo quella dello scambio. La commissione del broker non è visibile nella transazione. Almeno, è così con l'apertura.

Guardo le offerte per OnTrade (o OnTradeTransaction), le calcolo immediatamente e le scrivo nello stato e nel log.

Voglio aggiungere per sicurezza: dovete tenere a mente che un ordine può causare diverse transazioni con volume parziale.

Grazie!!!
 

C'è anche un problema organizzativo, se qualcuno sa come risolverlo nel modo migliore - per favore scrivetelo a parole, lo metterò in codice:

in generale, come capire che il ciclo dell'ordine, una nuova posizione - PROFIT ha iniziato - per prendere in considerazione il prezzo medio di apertura della posizione (compensazione cambia il suo valore):

per essere chiari, posso sia dal terminale tramite i tasti me stesso e da un robot con magik....

In generale, ho bisogno di un punto di rapporto - per calcolare il prezzo medio di entrata della posizione.

Posso usare i dati da qui + per esempio leggere il tempo in cui la posizione precedente ha chiuso in profitto e prendere una differenza con il tempo reale del server da lì, come se iniziassi un ciclo dal terminale - senza un robot:

Intendo qualcosa del genere:

// --- определение границ требуемой торговой истории
   datetime end=TimeCurrent();                 // текущее серверное время
   datetime start=end-PeriodSeconds(PERIOD_D1);// установим начало на сутки назад
come la posizione passata è sul lato positivo - allora la contabilità del ciclo attuale è già iniziata. e gli ordini - devi già contare sia il prezzo di entrata che il volume per calcolare il prezzo medio di entrata della posizione aggregata...

https://www.mql5.com/ru/articles/211


Получение информации по ордерам из истории

Работа с историческими ордерами почти ничем не отличается от работы с действующими ордерами за одним только исключением. Если количество действующих ордеров в кэше mql5-программе не может быть больше одного, то результат HistoryOrdersTotal() и количество  исторических ордеров в кэше зависит от того, какой объем торговой истории был загружен функцией HistorySelect(start, end), HistorySelectByPosition() или HistoryOrderSelect().
Важно: если торговая история не была загружена в кэш mql5-программы одной из функций  HistorySelect(), HistorySelectByPosition() или HistoryOrderSelect(), то работать с историческими ордерами и сделками невозможно. Обязательно запрашивайте требуемую историю сделок и ордеров перед получением данных по торговой истории.

Для примера приведен скрипт, который ищет последний ордер за последний день и выводит по нему информацию. 

// --- определение границ требуемой торговой истории
   datetime end=TimeCurrent();                 // текущее серверное время
   datetime start=end-PeriodSeconds(PERIOD_D1);// установим начало на сутки назад
//--- запросим в кэш программы торговую историю за день
   HistorySelect(start,end);
//--- получим количество ордеров в истории
   int history_orders=HistoryOrdersTotal();
//--- получим тикет ордера из истории, имеющего последний индекс в списке
   ulong order_ticket=HistoryOrderGetTicket(history_orders-1);
   if(order_ticket>0) // получили в кэш исторический ордер, работаем с ним
     {
      //--- статус ордера
      ENUM_ORDER_STATE state=(ENUM_ORDER_STATE)HistoryOrderGetInteger(order_ticket,ORDER_STATE);
      long order_magic      =HistoryOrderGetInteger(order_ticket,ORDER_MAGIC);
      long pos_ID           =HistoryOrderGetInteger(order_ticket,ORDER_POSITION_ID);
      PrintFormat("Ордер #%d: ORDER_MAGIC=#%d, ORDER_STATE=%d, ORDER_POSITION_ID=%d",
                  order_ticket,order_magic,EnumToString(state),pos_ID);

     }
   else              // неудачная попытка получения ордера

     {
      PrintFormat("Всего в истории %d ордеров, не удалось выбрать ордер"+
                  " с индексом %d. Ошибка %d",history_orders,history_orders-1,GetLastError());
     }

--------------------------------------------------------------

Naturalmente, idealmente dovrebbe essere chiuso indipendentemente dal risultato del ciclo precedente - profitto o perdita.

L'inizio - il nuovo è stato segnato per il calcolo nel codice - il prezzo medio del nuovo ciclo attuale delle medie, per esempio, o le azioni - non importa...

Ордерa, позиции и сделки в MetaTrader 5
Ордерa, позиции и сделки в MetaTrader 5
  • www.mql5.com
Надежный торговый робот не может быть создан без понимания механизмов работы торговой системы MetaTrader 5. Клиентский терминал получает от торгового сервера информацию о позициях, ордерах и сделках. Чтобы правильно обработать эти данные средствами MQL5 необходимо хорошо представлять как происходит взаимодействие mql5-программы и среды исполнения терминала.
Motivazione: