MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 432

 
WinProject :

감사합니다! ), 변수 Cena=FileReadString(handle); Separator=StringReplace(Сena,",","."); "숫자에서 문자열로의 암시적 변환" 오류를 씁니다.

문자열로 구분 기호 ","(1.22426)가 있는 값을 읽고 싶지 않고 StringReplace가 실패합니다. 아니면 내가 잘못하고 있습니까?


CENA 변수의 유형을 나타내는 파일 읽기 시작 부분부터 코드의 일부를 있는 그대로 붙여넣습니다.

 
Vladislav Andruschenko :

CENA 변수의 유형을 나타내는 파일 읽기 시작 부분부터 코드의 일부를 있는 그대로 붙여넣습니다.


무효 MyFunc()

{

handle=FileOpen("Data.csv", FILE_CSV|FILE_READ ,';');

동안(FileIsEnding(핸들)!=true)

{ 문자열 cena=FileReadString(핸들);

stringSepar=StringReplace(시나,",",".");

if(FileIsEnding(핸들)==true)

부서지다;

}

파일 닫기(핸들);

}

 
WinProject :

무효 MyFunc()

{

handle=FileOpen("Data.csv", FILE_CSV|FILE_READ ,';');

동안(FileIsEnding(핸들)!=true)

{ 문자열 cena=FileReadString(핸들);

stringSepar=StringReplace(시나,",",".");

if(FileIsEnding(핸들)==true)

부서지다;

}

파일 닫기(핸들);

}

이 함수가 반환하는 내용을 읽으십시오. 문자열로 결과를 얻으려고 합니다. 그러나 이 기능은 문자를 문자로 대체합니다. 변경 사항과 함께 cena를 계속 사용할 수 있습니다.
 
Vladislav Andruschenko :
이 함수가 반환하는 내용을 읽으십시오. 문자열로 결과를 얻으려고 합니다. 그러나 이 기능은 문자를 문자로 대체합니다. 변경 사항과 함께 cena를 계속 사용할 수 있습니다.
나는 내 실수(string Separ=여기서는 불필요함)를 깨달았고 모든 것이 잘 되었습니다.

감사해요!)

 

도와주세요. 이전 양초의 고점에서 그 위의 200p 지점까지 직사각형을 그리고 앞으로 막대를 위한 시간을 그려야 합니다 .

코드를 작성했는데 왜 사각형의 왼쪽 점이 움직이지 않는지 이해가 되지 않습니다. 그리고 오른쪽은 높은 곳 뒤로 미끄러집니다.

 int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//---
   //ObjectDelete(0,"Name");
   ArraySetAsSeries (high, true );
   ObjectCreate ( 0 , "Name" , OBJ_RECTANGLE , 0 , TimeCurrent (),high[ 0 ], TimeCurrent ()+ PeriodSeconds ( PERIOD_CURRENT )* 2 ,high[ 0 ]+ 200 * _Point );
   ObjectSetInteger ( 0 , "Name" , OBJPROP_FILL , true );
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
 
Roman Sharanov :

도와주세요. 이전 양초의 고점에서 그 위의 200p 지점까지 직사각형을 그리고 앞으로 막대를 위한 시간을 그려야 합니다 .

코드를 작성했는데 왜 사각형의 왼쪽 점이 움직이지 않는지 이해가 되지 않습니다. 그리고 오른쪽은 높은 곳 뒤로 미끄러집니다.


이미 차트에 있는 개체를 만들려고 하고 있습니까? 차트에 이미 개체가 있는지 확인하는 것이 좋습니다.


이전 막대는 0이 아니라 1입니다.

high[ 0 ] - это ХАЙ текущего бара
 
Vladislav Andruschenko :

이미 차트에 있는 개체를 만들려고 하고 있습니까? 차트에 이미 개체가 있는지 확인하는 것이 좋습니다.


이전 막대는 0이 아니라 1입니다.


네, 이미 인덱스를 수정했습니다.

이름을 바꾸고 목록을 보았지만 아무 것도 바뀌지 않았으며 모든 것이 동일하며 한 지점은 한 곳에 매달리고 두 번째 지점은 최고점을 따릅니다.

 
Roman Sharanov : 네, 이미 지수를 수정했습니다.

이름을 바꾸고 목록을 보았지만 아무 것도 바뀌지 않았으며 모든 것이 동일하며 한 지점은 한 곳에 매달리고 두 번째 지점은 최고점을 따릅니다.

   ObjectDelete ( 0 , "Name" );
   ObjectCreate ( 0 , "Name" , OBJ_RECTANGLE , 0 ,
                 TimeCurrent ()- _Period * 60 ,high[ 1 ],
                 TimeCurrent ()+ PeriodSeconds ( PERIOD_CURRENT )* 2 ,high[ 0 ]+ 200 * _Point );
   ObjectSetInteger ( 0 , "Name" , OBJPROP_FILL , true );
   return (rates_total);

움직이는


 
STARIJ :
아주 간단합니다. iMA를 계산하려면 7개의 매개변수를 설정해야 합니다. 첫 번째 매개변수인 symbol name 은 분명합니다. 두 번째 시간 프레임으로 M1 을 설정 합니다. 세 번째 매개 변수인 기간은 하루가 1분 이상인 시간에 필요한 만큼 설정합니다. 네 번째 매개변수는 shift = 0입니다. 다음 두 매개변수는 평균화 방법과 가격 유형입니다. 마지막 매개 변수 - 막대 수 - 필요한 시간을 알고 계산합니다. 그게 다야! M5 및 M15 기간을 계산하여 이를 다시 확인하십시오. M30도 가능합니다.

STARIJ, 도움을 주셔서 감사합니다. 불행히도 원본과의 일치가 약하고 시간이 증가함에 따라 (예 : 30 분에서 1 주일로) 일치가 크게 줄어 듭니다. 이 방법은 없는 것보다 낫지만 정확도가 충분하지 않습니다. 다른 옵션이 있습니까?

 
Boss11 :

STARIJ, 도움을 주셔서 감사합니다. 불행히도 원본과의 일치가 약하고 시간이 증가함에 따라 (예 : 30 분에서 1 주일로) 일치가 크게 줄어 듭니다. 이 방법은 없는 것보다 낫지만 정확도가 충분하지 않습니다. 다른 옵션이 있습니까?

네. M1을 사용해야 하고 M5, ... - 확인을 위해 사용해야 합니다. 보간을 사용할까요? MT5에는 틱 기록이 있습니다. 수익이 어딘지 알려주시면 다시 찾아보겠습니다