エラー、バグ、質問 - ページ 259

 

司会者、質問です。

servicedeskにリクエストを 送ることができません。

閉じるボタンが効かない

Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 
sergeev:

司会者、質問です。

servicedeskにリクエストを 送ることができません。

また、「閉じる」ボタンが機能しない

もう一度やり直してください。Servicedeskは社内のシステムの一部で、最近再起動しました。
 
ストップロスで取引が終了したかどうかを知る方法を教えてください。
 
5の無限ループスクリプトに代わるものがあれば知りたいです。このようなスクリプトは非常に気まぐれなので、ターミナルを再度開いたり、タイムフレームを変更しても動作を継続させたいのです。
 
Olegts:
5の無限ループスクリプトに代わるものがあれば 知りたいです。このようなスクリプトは非常に気まぐれなので、ターミナルを再度開いたり、タイムフレームを変更しても動作を継続させたいのです。

最小頻度が1秒でいいならOnTimer、そうでないなら

OnTimerでマイクロ秒の操作がない限り

 
型変換によるデータ消失の可能性 ChartObject.mqh 213 4
型変換によりデータが失われる可能性がある ChartObject.mqh 481 4
型変換によりデータが失われる可能性がある ChartObject.mqh 867 17
型変換によりデータが失われる可能性がある ChartObjectsTxtControls.mqh 519 4

Bild 375 - vorningsが標準ライブラリに登場。他にもあるかもしれませんが、まだ確認していません。

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
Urain:

最小周波数が1秒でいいならOnTimer、そうでないなら

OnTimerまでは、マイクロ秒の操作はありません

ありがとうございます。短い間隔が必要なので、昔ながらの方法です :)
 
nanaos:
ストップロスで取引が終了したかどうかを確認する方法を教えてください。

MT5では、ストップロスで決済した取引ではなく、ポジションで、現時点では、ストップロスでポジションを決済 した取引のコメントのみで確認することができます。以下はサンプルコードです。

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)
     {
      case 10008: {Print("Ордер размещен");PositionSelect(Symbol());ID=PositionGetInteger(POSITION_IDENTIFIER);}break;
      case 10009: {Print("Заявка выполнена");PositionSelect(Symbol());ID=PositionGetInteger(POSITION_IDENTIFIER);}break;
      case 10004: {Print("Реквота");}break;
      case 10006: {Print("Запрос отвергнут");}break;
      case 10007: {Print("Запрос отменен трейдером");res=false;}break;

      case 10010: {Print("Заявка выполнена частично");res=false;}break;
      case 10011: {Print("Ошибка обработки запроса");res=false;}break;
      case 10012: {Print("Запрос отменен по истечению времени");}break;
      case 10013: {Print("Неправильный запрос");res=false;}break;
      case 10014: {Print("Неправильный объем в запросе");res=false;}break;
      case 10015: {Print("Неправильная цена в запросе");res=false;}break;
      case 10016: {Print("Неправильные стопы в запросе");res=false;}break;
      case 10017: {Print("Торговля запрещена");res=false;}break;
      case 10018: {Print("Рынок закрыт");}break;
      case 10019: {Print("Нет достаточных денежных средств для выполнения запроса");res=false;}break;
      case 10020: {Print("Цены изменились");}break;
      case 10021: {Print("Отсутствуют котировки для обработки запроса");}break;
      case 10022: {Print("Неверная дата истечения ордера в запросе");res=false;}break;
      case 10023: {Print("Состояние ордера изменилось");}break;
      case 10024: {Print("Слишком частые запросы");res=false;}break;
      case 10025: {Print("В запросе нет изменений");res=false;}break;
      case 10026: {Print("Автотрейдинг запрещен сервером");res=false;}break;
      case 10027: {Print("Автотрейдинг запрещен клиентским терминалом");res=false;}break;
      case 10028: {Print("Запрос заблокирован для обработки");res=false;}break;
      case 10029: {Print("Ордер или позиция заморожены");res=false;}break;
      case 10030: {Print("Указан неподдерживаемый тип исполнения ордера по остатку");res=false;}break;
      case 10031: {Print("Нет соединения с торговым сервером");}break;
      case 10032: {Print("Операция разрешена только для реальных счетов");res=false;}break;
      case 10033: {Print("Достигнут лимит на количество отложенных ордеров");res=false;}break;
      case 10034: {Print("Достигнут лимит на объем ордеров и позиций для данного символа");res=false;}break;
      default:    Print("Ошибка № - ",result.retcode);
     }
  }
 

EAは、区間ABで最適化されています。上記は、インターバルADにこれらのパラメータを設定した場合の実行結果です。C点でどうなるのかがわからない。

Expert AdvisorがCD間隔に実質的に最適化されていないことが理解できない。もしかしたら、この後、いくつかの貿易ルールに変更があるかもしれません。 25.10.2010(C点)なのか、それとも別の何か?

 
sultanm:

EAは、区間ABで最適化されています。上記は、インターバルADにこれらのパラメータを設定した場合の実行結果です。C点でどうなるのかがわからない。

Expert Advisorは実質的にCD間隔に最適化されていませんが。もしかしたら、この後、取引ルールの一部に変更があるかもしれません。 25.10.2010(C点)なのか、それとも別の何か?

Expert Advisorの平均的な利益のトレードサイズを教えてください。なんか、10pips以下な気がする。

問題はおそらくヒストリカルデータにあり、よりコーミング(フィルター)されているか、より正しい(例えば正しいスプレッドを含んでいる)かのどちらかです。

サーバーとは何ですか?