mql5 언어의 특징, 미묘함 및 작업 방법 - 페이지 57

 
A100 :

미묘한 실행 오류 형태의 선물

::CopyTicks가 Copyticks보다 나은 이유는 무엇입니까?

그리고 결과가 항상 -1인 이유는 무엇입니까? 이러한 오류는 컴파일 시간에 보고되어야 합니다.

따라서 모든 것이 논리적입니다. ERR_INVALID_ARRAY에 오류가 발생했습니다.

크기가 sizeof( MqlTick )와 같기만 하면 유형에 정확히 복사합니다. 물론 컴파일 단계에서 확인할 수 있는 것은 이 크기다.

음, 사용자 정의 CopyTicks는 모든 MQL 규칙을 따릅니다.


하위 배열은 상위 배열로 변환할 수 없습니다. 그러나 요소별로 - 그렇습니다. 이것은 제거하는 것이 좋은 ArrayCopy 제한 사항이 있습니다.

 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

초보자의 질문 MQL5 MT5 MetaTrader 5

fxsaber , 2017.10.19 21:13

 // Возвращает true, если нет бара с таким временем ("дырка")
bool IsHole( const string Symb, const ENUM_TIMEFRAMES TimeFrame, const datetime time )
{
   return ( Bars (Symb, TimeFrame, SeriesInfoInteger ( _Symbol , PERIOD_CURRENT , SERIES_FIRSTDATE ), time) +
         Bars (Symb, TimeFrame, time, SeriesInfoInteger ( _Symbol , PERIOD_CURRENT , SERIES_LASTBAR_DATE )) ==
         SeriesInfoInteger ( _Symbol , PERIOD_CURRENT , SERIES_BARS_COUNT ));
}

서버에 의존하지 않고 작동합니다.

 
A100 :

실행 중 미묘한 오류 형태의 선물

다음 빌드에서는 불행히도 선물이 비활성화됩니다.

 
이 계정으로 계속 작업하시겠습니까?
Документация по MQL5: Программы MQL5 / Выполнение программ
Документация по MQL5: Программы MQL5 / Выполнение программ
  • www.mql5.com
Каждый скрипт и каждый эксперт работает в собственном отдельном потоке. Все индикаторы, рассчитываемые на одном символе, даже если они запущены на разных графиках, работают в одном потоке. Таким образом, все индикаторы на одном символе делят между собой ресурсы одного потока. В одном потоке с индикаторами также последовательно выполняются...
 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

도서관: 전문가

fxsaber , 2017.10.31 01:27

작은 생명 해킹 - OBJ_CHART 개체에서 Expert Advisors/스크립트 시작.

따라서 실행 중인 Expert Advisors는 중단됩니다. 어떤 식으로든 실행되지 않습니다. 그러나 스크립트는 훌륭하게 작동합니다. 그래서 이것은 몇 가지 가능성을 열어줍니다.

예를 들어, Expert Advisor가 이미 실행 중인 차트의 지표에서 주문 기능을 사용할 수 있습니다. 동시에 새로운 보조 차트를 열 필요가 없습니다.

 
fxsaber :

지표가 없어도 이벤트를 통해 거래할 수 있지만 구명 해킹 을 사용했습니다.


 
비탈리 무지첸코 :

지표가 없어도 이벤트를 통해 거래할 수 있지만 구명 해킹 을 사용했습니다.

이렇게 하려면 "도청" 고문이 병렬로 작동해야 합니다. 보조 차트가 필요합니다.

이 예에서는 상황이 다소 다릅니다. 하나의 차트가 있고 해당 차트에서 Expert Advisor가 이미 실행 중입니다. 그리고 새 지표를 열지 않고 지표를 통해 OrderSend 를 전달하고 싶습니다.

물론 시장이 통과하기 위한 DLL 없이.

 
fxsaber :

이렇게 하려면 "도청" 고문이 병렬로 작동해야 합니다. 보조 차트가 필요합니다.

이 예에서는 상황이 다소 다릅니다. 하나의 차트가 있고 해당 차트에서 Expert Advisor가 이미 실행 중입니다. 그리고 새 지표를 열지 않고 지표를 통해 OrderSend를 전달하고 싶습니다.

물론 시장이 통과하기 위한 DLL 없이.

동영상은 DLL 없이도 작동합니다. 모든 차트에서 하나의 청취 EA만 필요하며 현재 차트에서도 가능합니다.

 
비탈리 무지첸코 :

모든 차트에서 하나의 청취 EA만 필요 하며 현재 차트에서도 가능합니다 .

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

mql5 언어의 특징, 미묘함 및 작업 방법

fxsaber , 2017.10.31 06:08

이 예에서는 상황이 다소 다릅니다. 하나의 차트가 있고 해당 차트에서 Expert Advisor가 이미 실행 중입니다. 그리고 새 지표를 열지 않고 지표를 통해 OrderSend를 전달하고 싶습니다.

 
// Сохранение Bitmap-объекта в bmp/gif/png-файле (прозрачность не учитывается)
bool BitmapObjectToFile( const long chartID, const string ObjName, const string FileName, const bool FullImage = false )
{  
   const ENUM_OBJECT Type = ( ENUM_OBJECT ) ObjectGetInteger (chartID, ObjName, OBJPROP_TYPE );  
   bool Res = (Type == OBJ_BITMAP_LABEL ) || (Type == OBJ_BITMAP );
             
   if (Res)
  {
     const string Name = __FUNCTION__ + ( string ) MathRand ();

     ObjectCreate (chartID, Name, OBJ_CHART , 0 , 0 , 0 );
     ObjectSetInteger (chartID, Name, OBJPROP_XDISTANCE , - 1 e3);
    
     const long chart = ObjectGetInteger (chartID, Name, OBJPROP_CHART_ID );
        
    Res = ChartSetInteger (chart, CHART_SHOW , false ) && ObjectCreate (chart, Name, OBJ_BITMAP_LABEL , 0 , 0 , 0 ) &&
           ObjectSetString (chart, Name, OBJPROP_BMPFILE , ObjectGetString (chartID, ObjName, OBJPROP_BMPFILE )) &&
          (FullImage || ( ObjectSetInteger (chart, Name, OBJPROP_XSIZE , ObjectGetInteger (chartID, ObjName, OBJPROP_XSIZE )) &&
                         ObjectSetInteger (chart, Name, OBJPROP_YSIZE , ObjectGetInteger (chartID, ObjName, OBJPROP_YSIZE )) &&
                         ObjectSetInteger (chart, Name, OBJPROP_XOFFSET , ObjectGetInteger (chartID, ObjName, OBJPROP_XOFFSET )) &&
                         ObjectSetInteger (chart, Name, OBJPROP_YOFFSET , ObjectGetInteger (chartID, ObjName, OBJPROP_YOFFSET )))) &&
                         ChartScreenShot (chart, FileName, ( int ) ObjectGetInteger (chart, Name, OBJPROP_XSIZE ),
                                                          ( int ) ObjectGetInteger (chart, Name, OBJPROP_YSIZE ));
     ObjectDelete (chartID, Name);
  }                    

   return (Res);
}


애플리케이션

 // Сохраняет в png-файлах все Bitmap-объекты текущего чарта
void OnStart ()
{  
   for ( int i = ObjectsTotal ( 0 ) - 1 ; i >= 0 ; i--)
  {
     const string Name = ObjectName ( 0 , i);
    
     BitmapObjectToFile ( 0 , Name, ( string ) ChartID () + "\\" + Name + ".png" );    
  }      
}


ZY 또한 BMP-> GIF/PNG 파일 변환기가 구현됩니다.