몇 가지 오류를 수정하려고 시도했지만 계속 하나 더 나타납니다... 초보자의 삶을 더 쉽게 만드는 것이 목표 였다면 이렇게 어려워지고 여기서 정신을 잃고 있습니다 ...
도와주세요!
에어튼이 기사는 초보자를위한 매우 고급이며, 먼저 객체 지향 응용 프로그램 개발, 계층 구조, 다형성, 상속, 가상 메소드의 개념을 이해해야합니다. 즉, 고급 프로그래밍을 알아야합니다. 그러나 이러한 예제에서 발견 된 오류는 클래스 선언과 관련이 있으며 일부에는 손으로 삽입해야하는 공개 키워드가 누락되어 있으며 이전 버전의 MQL에서는 컴파일하는 데 이러한 키워드가 필요하지 않았지만이 버전에는이 수정이 필요할 수 있습니다.
'MACD_MA model.mq5' MACD_MA model.mq5 11'Trade.mqh' Trade.mqh 11'Object.mqh' Object.mqh 11'StdLibErr.mqh' StdLibErr.mqh 11'SymbolInfo.mqh' SymbolInfo.mqh 11'OrderInfo.mqh' OrderInfo.mqh 11'HistoryOrderInfo.mqh' HistoryOrderInfo.mqh 11'PositionInfo.mqh' PositionInfo.mqh 11'DealInfo.mqh' DealInfo.mqh 11'AccountInfo.mqh' AccountInfo.mqh 11'model_macd.mqh' model_macd.mqh 11'Model.mqh' Model.mqh 11'List.mqh' List.mqh 11'TableOrders.mqh' TableOrders.mqh 11'Time.mqh' Time.mqh 11'mm.mqh' mm.mqh 11'stdlib.mqh' stdlib.mqh 11'model_ma.mqh' model_ma.mqh 11'model_bollinger.mqh' model_bollinger.mqh 11returnvalue of 'OrderSelect' should be checked TableOrders.mqh 1204implicitenum conversion TableOrders.mqh 5044'new_message' - conversion is not accessible because of inheritance access Time.mqh 18521
possible use of uninitialized variable 'lot_limit' mm.mqh 12910't' - conversion is not accessible because of inheritance access Model.mqh 25227
declaration of 'trade' hides global variable Model.mqh 28216
see previous declaration of 'trade' MACD_MA model.mq5 188
declaration of 'i' hides local variable Model.mqh 31015
see previous declaration of 'i' Model.mqh 30712
possible loss of data due to type conversion Model.mqh 42847
possible loss of data due to type conversion model_macd.mqh 8611
possible loss of data due to type conversion model_macd.mqh 9014
possible loss of data due to type conversion model_macd.mqh 9114
possible loss of data due to type conversion model_macd.mqh 9216
expression not boolean model_macd.mqh 22811
expression not boolean model_macd.mqh 25411
possible loss of data due to type conversion model_ma.mqh 8511
possible loss of data due to type conversion model_ma.mqh 898
possible loss of data due to type conversion model_ma.mqh 9019
expression not boolean model_ma.mqh 21911
expression not boolean model_ma.mqh 24211
declaration of 'k_ATR' hides global variable model_bollinger.mqh 97110
see previous declaration of 'k_ATR' MACD_MA model.mq5 2516
possible loss of data due to type conversion model_bollinger.mqh 9922
possible loss of data due to type conversion model_bollinger.mqh 10422
possible loss of data due to type conversion model_bollinger.mqh 10722
variable 'rezult' not used model_bollinger.mqh 1709
variable 'rezult' not used model_bollinger.mqh 1959
expression not boolean model_bollinger.mqh 23811
expression not boolean model_bollinger.mqh 263112 errors, 25 warnings 326
class Test : public CObject {
public:
int i_;
Test(int i) {
i_ = i;
};
int get_i() {
return i_;
};
};
CList *list = new CList();
for (int i = 0; i < 10; i++) {
Test *t = new Test(i);
list.Add(t);
}
for (int i = 0; i < list.Total(); i++) {
Test *t = list.GetNodeAtIndex(i);
if (i == 5) {
list.DeleteCurrent();
}
if (CheckPointer(t) == POINTER_INVALID) {
continue;
}
Print(t.get_i());
}
인덱스 5에서 노드를 삭제한 후 인덱스 6을 반복하지만 다음 요소는 여전히 인덱스 5입니다.
GetFirstNode / GetNextNode를 사용하는 것이 더 좋습니다.
for (Test *t = list.GetFirstNode(); t != NULL;) {
t_current = t;
if (t.get_i() == 5) {
list.DeleteCurrent();
t = list.GetCurrentNode();
if (t == t_current) {break;}
continue;
}
Print(t.get_i());
t = list.GetNextNode();
}
감사합니다, 훌륭한 글과 좋은 프레임워크입니다. 정확히 제가 찾던 것입니다.
실제 돈으로 사용할 계획인데 최신 버전인가요?
고마워요
안녕하세요!
몇 가지 오류를 수정하려고 시도했지만 계속 하나 더 나타납니다... 초보자의 삶을 더 쉽게 만드는 것이 목표 였다면 이렇게 어려워지고 여기서 정신을 잃고 있습니다 ...
도와주세요!
이 함수 bool CTableOrders::Add(ulong Ticket,double stop_loss,double take_profit) 89행의 "TableOrders.mqh" 파일에서 변수 m_type을 다음으로 바꿔야 합니다:
From:
m_type=order_info.Type();
To:
m_type=order_info.OrderType();
두 번째는 "TableOrders.mqh"에서도 마찬가지입니다:
From:
클래스 CTableOrders : CObject
To:
class CTableOrders : public CObject
Regards,
A. HUPP
안녕하세요!
몇 가지 오류를 수정하려고 시도했지만 계속 하나 더 나타납니다... 초보자의 삶을 더 쉽게 만드는 것이 목표 였다면 이렇게 어려워지고 여기서 정신을 잃고 있습니다 ...
도와주세요!
에어튼이 기사는 초보자를위한 매우 고급이며, 먼저 객체 지향 응용 프로그램 개발, 계층 구조, 다형성, 상속, 가상 메소드의 개념을 이해해야합니다. 즉, 고급 프로그래밍을 알아야합니다. 그러나 이러한 예제에서 발견 된 오류는 클래스 선언과 관련이 있으며 일부에는 손으로 삽입해야하는 공개 키워드가 누락되어 있으며 이전 버전의 MQL에서는 컴파일하는 데 이러한 키워드가 필요하지 않았지만이 버전에는이 수정이 필요할 수 있습니다.
simple_model.mq5 파일을 컴파일하기 위해 "public"을 추가해야 했습니다:
클래스 CModel: 12번째 줄의 공개 CObject
MACD_MA_model.mq5를 컴파일하는 동안 이 오류가 계속 발생합니다:
'MODE_OPEN' - 열거자 식별자가 이미 정의됨 stdlib.mqh 13 4
기본 라이브러리를 참조하는이 오류를 해결할 수 없습니다.
테스트를 위한 일반적인 프레임워크를 구축하기 위해 노력해 주신 글과 노력에 감사드립니다.
simple_model.mq5 파일을 컴파일하기 위해 "public"을 추가해야 했습니다:
클래스 CModel: 12번째 줄의 공개 CObject
MACD_MA_model.mq5를 컴파일하는 동안 이 오류가 계속 발생합니다:
'MODE_OPEN' - 열거자 식별자가 이미 정의됨 stdlib.mqh 13 4
기본 라이브러리를 참조하는 이 오류를 해결할 수 없습니다.
테스트를 위한 일반적인 프레임워크를 구축하려는 노력과 기사에 감사드립니다.
https://www.mql5.com/en/forum/244512
컴파일을 해제하려고 했는데 오류가 발생했습니다.
코드를 수정할 계획이 있나요?
최소 위험 = 포인트 * 틱 값 * symbol_info_.LotsStep();
포인트 카운트 대신 틱 카운트를 사용해야 합니다.
tick_count = MathAbs(open_price - stop_loss) / symbol_info_.TickSize();
일부 심볼에서는 틱 크기 != 포인트이기 때문입니다.
를 사용합니다:
선물\농산물\#커피_H21:
목록을 반복할 때 노드를 삭제해서는 안 됩니다.
예를 들어
인덱스 5에서 노드를 삭제한 후 인덱스 6을 반복하지만 다음 요소는 여전히 인덱스 5입니다.
GetFirstNode / GetNextNode를 사용하는 것이 더 좋습니다.
도움을 주셔서 감사합니다!