[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 674

 

고맙습니다.
 

그런 문제.

튜토리얼에서 EA 수정 시작 - strings.mq4(EA 링크 https://c.mql4.com/book/mq4/experts/strings.mq4)

말 그대로 몇 줄을 추가했지만 감염이 작동하지 않습니다. 내가 망친 것이 분명하지만 오류를 찾을 수 없습니다.

그래서. 모든 변경 사항은 블록 10에 집중되어 있습니다.

원본은 다음과 같습니다.

//------------------------------------------------ -------------- 십 --
int Create(int Ind_Bar, int Line) // 사용자 정의 함수..
{ // ..객체 생성
색상 색상; // 객체 색상
datetime T_Bar=시간[Ind_Bar]; // 바 오픈 시간
이중 O_Bar=열기[Ind_Bar]; // 바 오픈 가격
더블 C_Bar=닫기[Ind_Bar]; // 바 종가
이중 H_Bar=높음[Ind_Bar]; // 최대 바 가격
이중 L_Bar=낮음[Ind_Bar]; // 최소 바 가격

문자열 Nom_Lin = 줄 + "_"; // 라인 - 라인 번호
// string Nom_Lin = DoubleToStr(Line,0)+"_";// 이렇게 할 수 있습니다.
문자열 Str_Time=TimeToStr(T_Bar); // 문자열 - 오픈 시간.
string His_Name=Prefix+Nom_Lin+Str_Time;// 생성 중인 객체의 이름
if (O_Bar < C_Bar) Color=Blue; // 색상에 따라 선택..
if (O_Bar > C_Bar) Color=Red; // .. 막대 특성에서
if (O_Bar ==C_Bar) 색상=녹색;

switch(Line) // 가는 선 또는 굵은 선
{
사례 1: // 가는 선
ObjectCreate(자신의 이름, OBJ_TREND ,0,T_Bar,H_Bar,T_Bar,L_Bar);
부서지다; // 종료 스위치
사례 2: // 굵은 선
ObjectCreate(His_Name,OBJ_TREND,0,T_Bar,O_Bar,T_Bar,C_Bar);
ObjectSet( His_Name, OBJPROP_WIDTH, 3);// 스타일
}
ObjectSet( His_Name, OBJPROP_COLOR, 색상); // 색깔
ObjectSet( His_Name, OBJPROP_RAY, 거짓); // 레이
ObjectSetText(His_Name,"전문가가 만든 개체",10);// 설명
반품; // 로그 아웃 기능

}

다음은 내가 만든 것입니다(오류 없이 컴파일): (첨부 파일도 참조)

//------------------------------------------------ -------------- 십 --
int Create(int Ind_Bar, int Line) // 사용자 정의 함수..
{ // ..객체 생성
색상 색상; // 객체 색상
datetime T_Bar=시간[Ind_Bar]; // 바 오픈 시간
이중 O_Bar=열기[Ind_Bar]; // 바 오픈 가격
더블 C_Bar=닫기[Ind_Bar]; // 바 종가
이중 H_Bar=높음[Ind_Bar]; // 최대 바 가격
이중 L_Bar=낮음[Ind_Bar]; // 최소 바 가격
//-------------------변경---------------------- ------ ------
더블 Macd_M_D1=iMACD(NULL,1440,12,26,9,PRICE_CLOSE,MODE_MAIN,0);
// 상단 - 메인 라인의 일별 MACD 계산에 액세스
더블 Macd_S_D1=iMACD(NULL,1440,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
// 이것은 MACD에 대한 호출이며 일별 신호 라인의 계산입니다.
더블 Macd_M_H4=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);
// 이것은 MACD에 대한 호출이며 현재 시간 프레임의 메인 라인 계산입니다.
더블 Macd_S_H4=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
// 이것은 MACD에 대한 호출이며 현재 시간 프레임에서 신호 라인의 계산입니다.

문자열 Nom_Lin = 줄 + "_"; // 라인 - 라인 번호
// string Nom_Lin = DoubleToStr(Line,0)+"_";// 이렇게 할 수 있습니다.
문자열 Str_Time=TimeToStr(T_Bar); // 문자열 - 오픈 시간.
string His_Name=Prefix+Nom_Lin+Str_Time;// 생성 중인 객체의 이름
if ((Macd_M_D1 < Macd_S_D1)&&(Macd_M_H4 < Macd_S_H4))Color=Blue;
if ((Macd_M_D1 > Macd_S_D1)&&(Macd_M_H4 > Macd_S_H4))Color=Red;
// //
//if (O_Bar < C_Bar) Color=Blue; // 색상에 따라 선택..
//if (O_Bar > C_Bar) Color=Red; // .. 막대 특성에서
//if (O_Bar ==C_Bar) Color=Green;

//-------------------변경---------------------- ------ ------

목표(일일 및 현재 시간대의 MACD 판독값이 수렴하는 경우)는 방향에 따라 양초를 빨간색 또는 파란색으로 색칠하는 것입니다.

파일:
 

이와 같이 배열을 선언할 수 없습니다.

 datetime T_Bar=Time [Ind_Bar]; // Время открытия бара
double O_Bar=Open [Ind_Bar]; // Цена открытия бара
double C_Bar=Close[Ind_Bar]; // Цена закрытия бара
double H_Bar=High [Ind_Bar]; // Максимальная цена бара
double L_Bar=Low [Ind_Bar]; // Минимальная цена бара

컴파일러는 배열의 차원을 지정하는 대신 변수가 있음을 확인합니다. 그는 단순히 미래 어레이에 할당할 메모리의 양을 알지 못할 것입니다. 이것은 코드가 작동하지 않는 곳입니다.

 
drknn :

이와 같이 배열을 선언할 수 없습니다.

컴파일러는 배열의 차원을 지정하는 대신 변수가 있음을 확인합니다. 그는 단순히 미래 어레이에 할당할 메모리의 양을 알지 못할 것입니다. 이것은 코드가 작동하지 않는 곳입니다.

사실은 EA의 이 부분을 건드리지 않았고 모두 작동했으며 코드의 표시된 부분은 MQL4 자습서에서 가져왔습니다(여기 https://c.mql4.com/book/mq4/experts). /strings.mq4

 
victor417 :

사실은 EA의 이 부분을 건드리지 않았고 모두 작동했으며 코드의 표시된 부분은 MQL4 자습서에서 가져왔습니다(여기 https://c.mql4.com/book/mq4/experts). /strings.mq4


교과서에 이렇게 배열이 선언되어 있다면 굉장히 이상합니다. 귀하가 기여한 코드 섹션을 주석으로 강조 표시하시겠습니까?

나는 그 교과서를 읽지 않았다. 그리고 저자는 그러한 배열 선언 의 합법성을 어떻게 입증합니까?

 

이상한 기능을 발견했습니다 - 인용의 양이 많을수록 테스터가 느려질수록... 1999년부터 테스트를 시작하면 빠르게 "실행"되지만 현재 시간에 가까울수록 브레이크가 더 강해집니다.. 2008년 및 "오늘"에 가까워짐 - 일반적으로 시각화 모드에서 테스트하는 것이 불가능합니다.

일반적으로 테스터 브레이크를 다루는 방법 ???

 

drknn :

이와 같이 배열을 선언할 수 없습니다.

 datetime T_Bar=Time [Ind_Bar]; // Время открытия бара
double O_Bar=Open [Ind_Bar]; // Цена открытия бара
double C_Bar=Close[Ind_Bar]; // Цена закрытия бара
double H_Bar=High [Ind_Bar]; // Максимальная цена бара
double L_Bar=Low [Ind_Bar]; // Минимальная цена бара

컴파일러는 배열의 차원을 지정하는 대신 변수가 있음을 확인합니다. 그는 단순히 미래 어레이에 할당할 메모리의 양을 알지 못할 것입니다. 이것은 코드가 작동하지 않는 곳입니다.

교과서에 이렇게 배열이 선언되어 있다면 굉장히 이상합니다. 귀하가 기여한 코드 섹션을 주석으로 강조 표시하시겠습니까?

나는 그 교과서를 읽지 않았다. 그리고 저자는 그러한 배열 선언의 합법성을 어떻게 정당화합니까?

나는 변수의 초기화를 참조하십시오. 어레이는 어디에 있습니까?

시계열? ;)

 
안녕하세요, 아마도 누군가가 이미 지그재그 표시기 를 만들어 고-저에서 최소 지정 편차로 전류를 구부렸지만 포인트 단위로 ... 예를 들어 편차를 50pp로 설정하면 모든 것이 덜하다고 생각했습니다. 소음 .. 포럼에서, 나는 많은 사람들을 검색하는 방법을 모르겠습니다 .. 미리 감사드립니다.
 

테스터에 문제가 있다고 말해주세요.

보고서는 총 손실 = 863, 최대 손실 = 1427을 보여줍니다. 이것이 어떻게 될 수 있습니까?

균형 곡선을 보면 최대값임을 알 수 있습니다. 감소 - 863.

이것은 어떤 종류의 결함입니까? 말씀해 주십시오. 아니면 그렇게 되어야 합니까?

미리 감사드립니다)

 
안녕하세요! 여기에 후행 정지를 추가할 수 있는 사람이 있습니까? 그리고 손절매는 매번 다르게 설정됩니다 ... 수정하십시오.
파일:
a_sidus_1.mq4  5 kb
사유: