주말 저녁 - 페이지 9

 
Aleksey Panfilov :

3개의 시간대에 하나의 지표에서 6개의 핸들이 있습니다.

그리고 취하는 값의 오프셋은 이미 설정되어 있습니다. 나는 그들에서 하나씩 복사했습니다.

그러나 세 개의 시간 프레임에서 하나의 표시기에 대한 세 개의 핸들을 사용하고 가능한 시프트 간격을 복사하여 혼동했습니다.

한 번에 둘 이상의 막대에서 표시기 값을 가져와야 하는 경우 값을 배열에 복사해야 합니다. iATR의 예:

 //+------------------------------------------------------------------+
//| Get value of buffers for the iATR                                |
//+------------------------------------------------------------------+
double iATRGet( const int index)
  {
   double ATR[ 1 ];
//--- reset error code 
   ResetLastError ();
//--- fill a part of the iATR array with values from the indicator buffer that has 0 index 
   if ( CopyBuffer (handle_iATR, 0 ,index, 1 ,ATR)< 0 )
     {
       //--- if the copying fails, tell the error code 
       PrintFormat ( "Failed to copy data from the iATR indicator, error code %d" , GetLastError ());
       //--- quit with zero result - it means that the indicator is considered as not calculated 
       return ( 0.0 );
     }
   return (ATR[ 0 ]);
  }
//+------------------------------------------------------------------+
//| Get value of buffers for the iATR in the array                   |
//+------------------------------------------------------------------+
bool iATRGetArray( const int start_pos, const int count, double &arr_buffer[])
  {
   bool result= true ;
   if (! ArrayIsDynamic (arr_buffer))
     {
       Print ( "This a no dynamic array!" );
       return ( false );
     }
   ArrayFree (arr_buffer);
   int        buffer_num= 0 ;           // indicator buffer number 
//--- reset error code 
   ResetLastError ();
//--- fill a part of the iATRBuffer array with values from the indicator buffer that has 0 index 
   int copied= CopyBuffer (handle_iATR,buffer_num,start_pos,count,arr_buffer);
   if (copied!=count)
     {
       //--- if the copying fails, tell the error code 
       PrintFormat ( "Failed to copy data from the iATR indicator, error code %d" , GetLastError ());
       //--- quit with zero result - it means that the indicator is considered as not calculated 
       return ( false );
     }
//---
   return (result);
  }
 
Vladimir Karputov :

한 번에 둘 이상의 막대에서 표시기 값을 가져와야 하는 경우 값을 배열에 복사해야 합니다. iATR의 예:

예, 내가 복사한 배열이 동적 상태로 남아 있다는 오류가 발생한 것 같습니다. :(

내가 확인 할게요.

 
Aleksey Panfilov :

예, 내가 복사한 배열이 동적 상태로 남아 있다는 오류가 발생한 것 같습니다. :(

내가 확인 할게요.

동적 배열 에만 복사합니다! 그리고 복사하기 전에 강제로 ArrayFree 를 합니다. 정적이있는 잼이있었습니다. 그 이후로는 다이나믹 만.

 
Vladimir Karputov :

동적 배열 에만 복사합니다! 그리고 복사하기 전에 강제로 ArrayFree 를 합니다. 정적과 함께 잼이있었습니다. 그 이후로는 다이나믹 만.

이해했다. 오류는 여기에 없습니다.

여기 가지 않은 전문가가 있습니다.

파일:
 
Aleksey Panfilov :

이해했다. 오류는 여기에 없습니다.

여기 가지 않은 전문가가 있습니다.

오류: 여전히 하나의 값 또는 개의 값을 복사하고 있습니까?

   //---  Используя функцию CopyBuffer, мы копируем по 1 последних новых значения индикаторов в динамические массивы

   if ( CopyBuffer (Handle_4P72_L0_1, 0 , 0 , 200 ,line1_L0)< 0    // || CopyBuffer(Handle_4P72_L0_2,0,0,1,line2_L0)<0   || CopyBuffer(SMA_Handle_00,0,0,1,SMA_L0)<0
   || CopyBuffer (Handle_4P72_L1_1, 0 , 0 , 200 ,line1_L1)< 0    // || CopyBuffer(Handle_4P72_L1_2,0,0,1,line2_L1)<0   || CopyBuffer(SMA_Handle_01,0,0,1,SMA_L1)<0
   || CopyBuffer (Handle_4P72_L2_1, 0 , 0 , 200 ,line1_L2)< 0    // || CopyBuffer(Handle_4P72_L2_2,0,0,1,line2_L2)<0   || CopyBuffer(SMA_Handle_02,0,0,1,SMA_L2)<0
   ||   CopyTime ( _Symbol , _Period , 0 , 1 ,New_Time)< 0 )
 
Vladimir Karputov :

오류: 여전히 하나의 값 또는 개의 값을 복사하고 있습니까?

이 Expert Advisor(날짜에 따라 다름)에서는 3개의 핸들과 200개의 값을 시도했습니다.

 

MT5에서 교환용 로봇을 만들 준비가 되었다면 아이디어를 던질 수 있습니다. TS-Lab에서 조건을 시뮬레이션하지만 자동 모드의 MT5에서 조건을 교환하고 싶습니다.

테스트에 문제가 없다면 거래 로직을 설명하겠습니다. 첫 번째는 아마도 이것이 될 것입니다.

 
Vladimir Karputov :

 

작은 배치부터 시작하겠습니다.

현재 촛불이 닫히기 전에 " 신호 촛불을 닫기 전 초 " 초가 남으면 바로 평균 크기를 계산하십시오. " 평균 촛불 크기를 계산하기 위한 촛불의 수 " 촛불. 현재 촛대가 평균 크기를 " 현재 양초: 초과 바디 크기, 퍼센트 " 퍼센트로 초과하는 경우 - " " 볼륨으로 포지션을 열고 " " * " 곱셈 계수 " 볼륨으로 보류 지정가 주문을 하십시오. " 보류 제한 수준: 현재 양초 높이의 백분율" 거리에서 포지션 시작 가격을 신호 양초 높이의 백분율로 표시합니다.

맞는 것 같나요?


내가 거기에 무엇을 얻었는지 기억하는 데 시간이 걸립니다. :) 그리고 여기에는 의도적으로 초안과 결과적으로 감기가 있습니다. 그리고 악은 동시에 재미 있습니다. 여름에는 온도를 잡고 감기에 걸립니다. :)

 
Vladimir Karputov :

내가 거기에 무엇을 얻었는지 기억하는 데 시간이 걸립니다. :) 그리고 여기에는 의도적으로 초안과 결과적으로 감기가 있습니다. 그리고 악은 동시에 재미 있습니다. 여름에는 온도를 잡고 감기에 걸립니다. :)

쾌유를 빌어요.

 
Vladimir Karputov :

동적 배열 에만 복사합니다! 그리고 복사하기 전에 강제로 ArrayFree 를 합니다. 정적이있는 잼이있었습니다. 그 이후로는 다이나믹 만.

어서 .. 정적도 걱정 없습니다. 그러나 우리가 이야기하는 내용에 따라. 칠면조에서는 버퍼를 관리하고 잼을 잡을 생각이 없다면 동적 인 것이 더 좋습니다. 실제로 올빼미의 경우에는 차이가 없습니다.