Se un SellLimit nel tester viene cancellato a causa della scadenza o del completamento del backtest, la sua data di scadenza diventa erroneamente uguale alla data dell'ordine pendente.
Se si imposta la data di scadenza attraverso TRADE_ACTION_MODIFY, non si attiva nel tester.
Riproduzione
voidOnInit()
{
MqlTradeRequest Request = {0};
Request.action = TRADE_ACTION_PENDING;
Request.symbol = Symbol();
Request.volume = 1;
Request.price = SymbolInfoDouble(Symbol(), SYMBOL_ASK);
Request.type = ORDER_TYPE_SELL_LIMIT;
MqlTradeResult Result;
if (OrderSend(Request, Result))
{
Request.action = TRADE_ACTION_MODIFY;
Request.order = Result.order;
Request.type_time = ORDER_TIME_SPECIFIED;
Request.expiration = TimeCurrent() + 10000;
if (OrderSend(Request, Result))
if (OrderSelect(Request.order))
Print("SetExpiration = " + (string)(datetime)OrderGetInteger(ORDER_TIME_EXPIRATION)); // установили дату экспирации
}
}
voidOnDeinit( constint reason )
{
if (HistorySelect(0, TimeCurrent()))
{
constulong Ticket = HistoryOrderGetTicket(0);
if (Ticket > 0)
{
// Дата экспирации изменилась - стала равна дате установки ордера!Print("NowExpiration = " + (string)(datetime)HistoryOrderGetInteger(Ticket, ORDER_TIME_EXPIRATION));
// При этом ордер по ранее установленной дате экспирации не удалился! Print("DeleteTime = " + (string)(datetime)HistoryOrderGetInteger(Ticket, ORDER_TIME_DONE));
}
}
}
I dati storici occupano molto spazio (questa non è una lamentela, è una constatazione). Devo usare diversi terminali e ognuno di essi raccoglie gigabyte di storia, e la storia è duplicata nelle cartelle del tester e del terminale.
Possiamo mettere tutti i file della storia in una cartella e specificare la cartella con un link nei terminali? Non avremo problemi di accesso alla storia tra diversi terminali?
L'ho provato. Ora ho diversi terminali e i loro tester accedono a una sola cartella con la storia. Tranne che per le lamentele terminali come:
2016.07.19 16:39:02.276 Spreads config file open error [Il processo non può accedere al file perché è utilizzato da un altro processo. (32)]
2016.07.19 16:39:02.276 Spreads config file open error [*****symbols\spreads-*********.dat][Il processo non può accedere al file perché è utilizzato da un altro processo. (32)]
Non vedo alcun problema nell'operazione. Evviva!... Centinaia di gigabyte di spazio su disco risparmiati!
Service Desk mi ha avvertito che c'è un rischio nel fare questo con l'accesso condiviso ai dati.
Provato. Ora ho diversi terminali e i loro tester che accedono a un'unica cartella della cronologia. Tranne che per le lamentele terminali come:
2016.07.19 16:39:02.276 Spreads config file open error [Il processo non può accedere al file perché è utilizzato da un altro processo. (32)]
2016.07.19 16:39:02.276 Spreads config file open error [*****symbols\spreads-*********.dat][Il processo non può accedere al file perché è utilizzato da un altro processo. (32)]
Non vedo alcun problema nell'operazione. Evviva!... Centinaia di gigabyte di spazio su disco risparmiati!
Service Desk mi ha avvertito che c'è un rischio nel fare questo con l'accesso condiviso ai dati.
Ho creato una cartella separata chiamata Bases, e vi ho trasferito la storia di uno dei terminali. Dopo di che in tutti i terminali e i loro tester invece di cartelle reali con la storia ho messo dei link come Junction a una cartella comune.
Particolarmente utile quando si utilizzano più terminali su un VPS, è possibile ottenere risparmi reali scegliendo uno spazio su disco più piccolo.
I dati storici occupano molto spazio (questa non è una lamentela, è una constatazione). Devo usare diversi terminali e ognuno di essi raccoglie gigabyte di storia, e la storia è duplicata nelle cartelle del tester e del terminale.
Possiamo mettere tutti i file della storia in una cartella e specificare la cartella con un link nei terminali? Non avremo problemi di accesso alla storia tra diversi terminali?
L'ho provato. Ora ho diversi terminali e i loro tester accedono a una sola cartella con la storia. Tranne che per le lamentele terminali come:
2016.07.19 16:39:02.276 Spreads config file open error [Il processo non può accedere al file perché è utilizzato da un altro processo. (32)]
2016.07.19 16:39:02.276 Spreads config file open error [*****symbols\spreads-*********.dat][Il processo non può accedere al file perché è utilizzato da un altro processo. (32)]
Non vedo alcun problema nell'operazione. Evviva!... Centinaia di gigabyte di spazio su disco risparmiati!
Service Desk mi ha avvertito che c'è un rischio nel fare questo con l'accesso condiviso ai dati.
Provato. Ora ho diversi terminali e i loro tester che accedono a un'unica cartella della cronologia. Tranne che per le lamentele terminali come:
2016.07.19 16:39:02.276 Spreads config file open error [Il processo non può accedere al file perché è utilizzato da un altro processo. (32)]
2016.07.19 16:39:02.276 Spreads config file open error [*****symbols\spreads-*********.dat][Il processo non può accedere al file perché è utilizzato da un altro processo. (32)]
Non vedo alcun problema nell'operazione. Evviva!... Centinaia di gigabyte di spazio su disco risparmiati!
Service Desk mi ha avvertito che c'è un rischio nel fare questo con l'accesso condiviso ai dati.
e come l'avete implementato?
Ho creato una cartella separata chiamata Bases, e vi ho trasferito la storia di uno dei terminali. Dopo di che in tutti i terminali e i loro tester invece di cartelle reali con la storia ho messo dei link come Junction a una cartella comune.
Particolarmente utile quando si utilizzano più terminali su un VPS, è possibile ottenere risparmi reali scegliendo uno spazio su disco più piccolo.
Nelle impostazioni della comunità (menu principale - Strumenti - Impostazioni - scheda Comunità), cancella i tuoi dati di autorizzazione.
Non ci sono pannelli di scambio? O in quale gruppo dovrebbero essere inseriti?
Non ci sono pannelli di scambio? O a quale gruppo appartengono?