Vorrei sapere se c'è un'alternativa allo script del ciclo infinito in 5, perché un tale script è molto capriccioso, vorrei che continuasse a funzionare quando si riapre il terminale o si cambia il timeframe?
Olegts: Vorrei sapere se c'è un'alternativa allo script del ciclo infinito in 5, perché un tale script è molto capriccioso, vorrei che continuasse a funzionare quando si riapre il terminale o si cambia il timeframe?
Se siete soddisfatti della frequenza minima di 1 secondo allora OnTimer, altrimenti
Finchénon c'è un'operazione di microsecondi in OnTimer.
possibile perdita di dati a causa della conversione del tipo ChartObject.mqh 213 4 possibile perdita di dati a causa della conversione del tipo ChartObject.mqh 481 4 possibile perdita di dati a causa della conversione del tipo ChartObject.mqh 867 17 possibile perdita di dati a causa della conversione del tipo ChartObjectsTxtControls.mqh 519 4
Bild 375 - vornings è apparso nelle biblioteche standard. Potrebbero essercene altri, non li ho ancora controllati.
nanaos: Potreste dirmi come faccio a sapere se un trade è stato chiuso da uno stop loss?
In MT5 non è il trade che chiude sullo stop loss, ma la posizione, al momento si può sapere solo dal commento del trade che ha chiuso la posizione sullo stop loss. Ecco un codice di esempio.
void Event()
{
if(!HistorySelectByPosition(ID))return;
double margin=0.0;
bool res;
int total=HistoryOrdersTotal();
ulong deal_ticket=HistoryDealGetTicket(total-1);
string coment=HistoryDealGetString(deal_ticket,DEAL_COMMENT);
long deal_type=HistoryDealGetInteger(deal_ticket,DEAL_TYPE);
double volume=HistoryDealGetDouble(deal_ticket,DEAL_VOLUME);
double MinLot=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
double MaxLot=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
double Bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);
double Ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
ulong stoplevel=SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);
if(deal_type==ORDER_TYPE_BUY)
{
if(StringFind(coment,"sl")>=0)
{
request.volume=NormalizeDouble(volume*Klot,DigitsVolume());
request.price=NormalizeDouble(Bid,_Digits);
request.type = ORDER_TYPE_SELL;
if(SL<=0 || TP<=0)return;
if(SL>=stoplevel) request.sl=NormalizeDouble(Ask+(SL*_Point),_Digits);
if(SL<stoplevel) request.sl=NormalizeDouble(Ask+(stoplevel*_Point),_Digits);
if(TP>=stoplevel) request.tp=NormalizeDouble(Bid -(TP*_Point),_Digits);
if(TP<stoplevel) request.tp=NormalizeDouble(Bid -(stoplevel*_Point),_Digits);
OrderCalcMargin(request.type,_Symbol,request.volume,Bid,margin);
if(AccountInfoDouble(ACCOUNT_FREEMARGIN)-margin<0)return;
}
if(StringFind(coment,"tp")>=0){flagNewSeries=true;return;}
}
if(deal_type==ORDER_TYPE_SELL)
{
if(StringFind(coment,"sl")>=0)
{
request.volume=NormalizeDouble(volume*Klot,DigitsVolume());
request.price=NormalizeDouble(Ask,_Digits);
request.type = ORDER_TYPE_BUY;
if(SL<=0 || TP<=0)return;
if(SL>=stoplevel) request.sl=NormalizeDouble(Bid -(SL*_Point),_Digits);
if(SL<stoplevel) request.sl=NormalizeDouble(Bid -(stoplevel*_Point),_Digits);
if(TP>=stoplevel) request.tp=NormalizeDouble(Ask+(TP*_Point),_Digits);
if(TP<stoplevel) request.tp=NormalizeDouble(Ask+(stoplevel*_Point),_Digits);
OrderCalcMargin(request.type,_Symbol,request.volume,Ask,margin);
if(AccountInfoDouble(ACCOUNT_FREEMARGIN)-margin<0)return;
}
if(StringFind(coment,"tp")>=0){flagNewSeries=true;return;}
}
if(request.volume<MinLot)request.volume=MinLot;
if(request.volume>MaxLot)request.volume=MaxLot;
request.volume=NormalizeDouble(request.volume,DigitsVolume());
request.action = TRADE_ACTION_DEAL;
request.magic = Magic;
request.symbol = _Symbol;
request.deviation = Slip;
request.type_filling = ORDER_FILLING_AON;
request.comment = CommentOrder;
OrderSend(request,result);
switch(result.retcode)
{
case10008: {Print("Ордер размещен");PositionSelect(Symbol());ID=PositionGetInteger(POSITION_IDENTIFIER);}break;
case10009: {Print("Заявка выполнена");PositionSelect(Symbol());ID=PositionGetInteger(POSITION_IDENTIFIER);}break;
case10004: {Print("Реквота");}break;
case10006: {Print("Запрос отвергнут");}break;
case10007: {Print("Запрос отменен трейдером");res=false;}break;
case10010: {Print("Заявка выполнена частично");res=false;}break;
case10011: {Print("Ошибка обработки запроса");res=false;}break;
case10012: {Print("Запрос отменен по истечению времени");}break;
case10013: {Print("Неправильный запрос");res=false;}break;
case10014: {Print("Неправильный объем в запросе");res=false;}break;
case10015: {Print("Неправильная цена в запросе");res=false;}break;
case10016: {Print("Неправильные стопы в запросе");res=false;}break;
case10017: {Print("Торговля запрещена");res=false;}break;
case10018: {Print("Рынок закрыт");}break;
case10019: {Print("Нет достаточных денежных средств для выполнения запроса");res=false;}break;
case10020: {Print("Цены изменились");}break;
case10021: {Print("Отсутствуют котировки для обработки запроса");}break;
case10022: {Print("Неверная дата истечения ордера в запросе");res=false;}break;
case10023: {Print("Состояние ордера изменилось");}break;
case10024: {Print("Слишком частые запросы");res=false;}break;
case10025: {Print("В запросе нет изменений");res=false;}break;
case10026: {Print("Автотрейдинг запрещен сервером");res=false;}break;
case10027: {Print("Автотрейдинг запрещен клиентским терминалом");res=false;}break;
case10028: {Print("Запрос заблокирован для обработки");res=false;}break;
case10029: {Print("Ордер или позиция заморожены");res=false;}break;
case10030: {Print("Указан неподдерживаемый тип исполнения ордера по остатку");res=false;}break;
case10031: {Print("Нет соединения с торговым сервером");}break;
case10032: {Print("Операция разрешена только для реальных счетов");res=false;}break;
case10033: {Print("Достигнут лимит на количество отложенных ордеров");res=false;}break;
case10034: {Print("Достигнут лимит на объем ордеров и позиций для данного символа");res=false;}break;
default: Print("Ошибка № - ",result.retcode);
}
}
L'EA è stato ottimizzato sull'intervallo AB. Qui sopra c'è un'esecuzione con questi parametri sull'intervallo AD. Non capisco cosa succede al punto C.
Non riesco a capire che l'Expert Advisor non è ottimizzato praticamente sull'intervallo CD. Forse c'è un cambiamento in alcune regole commerciali dopo 25.10.2010 (punto C) o qualcos'altro?
L'EA è stato ottimizzato sull'intervallo AB. Qui sopra c'è un'esecuzione con questi parametri sull'intervallo AD. Non capisco cosa succede al punto C.
Mentre l'Expert Advisor non è praticamente ottimizzato sull'intervallo CD. Forse c'è un cambiamento in alcune regole di trading dopo 25.10.2010 (punto C) o qualcos'altro?
Qual è la dimensione media degli scambi con profitto dell'Expert Advisor? Qualcosa mi dice che è meno di 10 pips.
Il problema è probabilmente nei dati storici - o sono più pettinati (filtrati), o semplicemente più corretti (per esempio contengono gli spread corretti).
Moderatori, una domanda per voi.
Non posso inviare una richiesta a servicedesk.
E il pulsante di chiusura non funziona
Moderatori, una domanda per voi.
Non posso inviare una richiesta a servicedesk.
E il pulsante "Chiudi" non funziona
Vorrei sapere se c'è un'alternativa allo script del ciclo infinito in 5, perché un tale script è molto capriccioso, vorrei che continuasse a funzionare quando si riapre il terminale o si cambia il timeframe?
Se siete soddisfatti della frequenza minima di 1 secondo allora OnTimer, altrimenti
Finché non c'è un'operazione di microsecondi in OnTimer.
possibile perdita di dati a causa della conversione del tipo ChartObject.mqh 481 4
possibile perdita di dati a causa della conversione del tipo ChartObject.mqh 867 17
possibile perdita di dati a causa della conversione del tipo ChartObjectsTxtControls.mqh 519 4
Bild 375 - vornings è apparso nelle biblioteche standard. Potrebbero essercene altri, non li ho ancora controllati.
Se vi accontentate di una frequenza minima di 1s allora OnTimer, altrimenti
Fino a OnTimer non c'è nessuna operazione al microsecondo.
Potreste dirmi come faccio a sapere se un trade è stato chiuso da uno stop loss?
In MT5 non è il trade che chiude sullo stop loss, ma la posizione, al momento si può sapere solo dal commento del trade che ha chiuso la posizione sullo stop loss. Ecco un codice di esempio.
L'EA è stato ottimizzato sull'intervallo AB. Qui sopra c'è un'esecuzione con questi parametri sull'intervallo AD. Non capisco cosa succede al punto C.
Non riesco a capire che l'Expert Advisor non è ottimizzato praticamente sull'intervallo CD. Forse c'è un cambiamento in alcune regole commerciali dopo 25.10.2010 (punto C) o qualcos'altro?
L'EA è stato ottimizzato sull'intervallo AB. Qui sopra c'è un'esecuzione con questi parametri sull'intervallo AD. Non capisco cosa succede al punto C.
Mentre l'Expert Advisor non è praticamente ottimizzato sull'intervallo CD. Forse c'è un cambiamento in alcune regole di trading dopo 25.10.2010 (punto C) o qualcos'altro?
Qual è la dimensione media degli scambi con profitto dell'Expert Advisor? Qualcosa mi dice che è meno di 10 pips.
Il problema è probabilmente nei dati storici - o sono più pettinati (filtrati), o semplicemente più corretti (per esempio contengono gli spread corretti).
Cos'è il server?