Ich würde gerne wissen, ob es eine Alternative zu dem Endlosschleifen-Skript in 5 gibt, denn ein solches Skript ist sehr launisch, ich möchte, dass es weiterarbeitet, wenn ich das Terminal neu öffne oder den Zeitrahmen ändere?
Olegts: Ich würde gerne wissen, ob es eine Alternative zu dem Endlosschleifen-Skript in 5 gibt, denn ein solches Skript ist sehr launisch, ich möchte, dass es weiterarbeitet, wenn ich das Terminal wieder öffne oder den Zeitrahmen ändere?
Wenn Sie mit der Mindestfrequenz von 1 Sekunde zufrieden sind, dann OnTimer, ansonsten
Solange es keine Mikrosekunden-Operation im OnTimer gibt.
möglicher Datenverlust aufgrund von Typkonvertierung ChartObject.mqh 213 4 möglicher Datenverlust aufgrund von Typkonvertierung ChartObject.mqh 481 4 möglicher Datenverlust aufgrund von Typkonvertierung ChartObject.mqh 867 17 möglicher Datenverlust aufgrund von Typkonvertierung ChartObjectsTxtControls.mqh 519 4
Bild 375 - vornings erschien in Standardbibliotheken. Vielleicht gibt es noch weitere, ich habe sie noch nicht überprüft.
nanaos: Könnten Sie mir bitte sagen, wie ich feststellen kann, ob ein Handel durch einen Stop-Loss geschlossen wurde?
Im MT5 ist es nicht der Handel, der mit dem Stop-Loss schließt, sondern die Position. Im Moment können Sie das nur durch den Kommentar des Handels herausfinden, der die Position mit dem Stop-Loss geschlossen hat. Hier ist ein Beispielcode.
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);
}
}
Der EA wurde für das Intervall AB optimiert. Oben sehen Sie einen Lauf mit diesen Parametern für das Intervall AD. Ich verstehe nicht, was bei Punkt C passiert.
Ich kann nicht verstehen, dass der Expert Advisor praktisch nicht auf CD-Intervall optimiert ist. Vielleicht gibt es eine Änderung einiger Handelsregeln nach 25.10.2010 (Punkt C) oder etwas anderes?
Der EA wurde für das Intervall AB optimiert. Oben sehen Sie einen Lauf mit diesen Parametern für das Intervall AD. Ich verstehe nicht, was bei Punkt C passiert.
Während der Expert Advisor praktisch nicht auf CD-Intervalle optimiert ist. Vielleicht gibt es eine Änderung einiger Handelsregeln nach 25.10.2010 (Punkt C) oder etwas anderes?
Wie hoch ist der durchschnittliche Gewinn des Expert Advisors? Irgendetwas sagt mir, dass es weniger als 10 Pips sind.
Das Problem liegt wahrscheinlich in den historischen Daten - sie sind entweder stärker gekämmt (gefiltert) oder einfach korrekter (z. B. enthalten sie die richtigen Spreads).
Moderatoren, eine Frage an Sie.
Ich kann keine Anfrage an servicedesk senden.
Und die Schaltfläche "Schließen" funktioniert nicht.
Moderatoren, eine Frage an Sie.
Ich kann keine Anfrage an servicedesk senden.
Und die Schaltfläche "Schließen" funktioniert nicht.
Ich würde gerne wissen, ob es eine Alternative zu dem Endlosschleifen-Skript in 5 gibt, denn ein solches Skript ist sehr launisch, ich möchte, dass es weiterarbeitet, wenn ich das Terminal wieder öffne oder den Zeitrahmen ändere?
Wenn Sie mit der Mindestfrequenz von 1 Sekunde zufrieden sind, dann OnTimer, ansonsten
Solange es keine Mikrosekunden-Operation im OnTimer gibt.
möglicher Datenverlust aufgrund von Typkonvertierung ChartObject.mqh 481 4
möglicher Datenverlust aufgrund von Typkonvertierung ChartObject.mqh 867 17
möglicher Datenverlust aufgrund von Typkonvertierung ChartObjectsTxtControls.mqh 519 4
Bild 375 - vornings erschien in Standardbibliotheken. Vielleicht gibt es noch weitere, ich habe sie noch nicht überprüft.
Wenn Sie mit einer Mindestfrequenz von 1s zufrieden sind, dann OnTimer, ansonsten
Bis OnTimer gibt es keinen Mikrosekundenbetrieb.
Könnten Sie mir bitte sagen, wie ich feststellen kann, ob ein Handel durch einen Stop-Loss geschlossen wurde?
Im MT5 ist es nicht der Handel, der mit dem Stop-Loss schließt, sondern die Position. Im Moment können Sie das nur durch den Kommentar des Handels herausfinden, der die Position mit dem Stop-Loss geschlossen hat. Hier ist ein Beispielcode.
Der EA wurde für das Intervall AB optimiert. Oben sehen Sie einen Lauf mit diesen Parametern für das Intervall AD. Ich verstehe nicht, was bei Punkt C passiert.
Ich kann nicht verstehen, dass der Expert Advisor praktisch nicht auf CD-Intervall optimiert ist. Vielleicht gibt es eine Änderung einiger Handelsregeln nach 25.10.2010 (Punkt C) oder etwas anderes?
Der EA wurde für das Intervall AB optimiert. Oben sehen Sie einen Lauf mit diesen Parametern für das Intervall AD. Ich verstehe nicht, was bei Punkt C passiert.
Während der Expert Advisor praktisch nicht auf CD-Intervalle optimiert ist. Vielleicht gibt es eine Änderung einiger Handelsregeln nach 25.10.2010 (Punkt C) oder etwas anderes?
Wie hoch ist der durchschnittliche Gewinn des Expert Advisors? Irgendetwas sagt mir, dass es weniger als 10 Pips sind.
Das Problem liegt wahrscheinlich in den historischen Daten - sie sind entweder stärker gekämmt (gefiltert) oder einfach korrekter (z. B. enthalten sie die richtigen Spreads).
Was ist der Server?