Vários erros estão sendo apresentados, já tentei corrigi-los mas sempre aparece mais um... se o objetivo era facilitar a vida dos iniciantes fica difícil desse jeito já estou perdendo a cabeça aqui..
Ótimo artigo! Tive de alterar duas coisas para fazê-lo funcionar.
No arquivo "TableOrders.mqh" nesta função bool CTableOrders::Add(ulong Ticket,double stop_loss,double take_profit) linha 89, a variável m_type deve ser substituída por:
Vários erros estão sendo apresentados, já tentei corrigi-los mas sempre aparece mais um... se o objetivo era facilitar a vida dos iniciantes fica difícil desse jeito já estou perdendo a cabeça aqui..
Help Please!
Airton esse artigo é muito avançado para iniciantes, você deve entender primeiramente o conceito de desenvolvimento de aplicações Orientada a Objetos, hierarquias, polimorfismo, heranças, métodos virtuais, ou seja, precisa conhecer programação avançada, os erros encontratos nesses exemplos no entanto estão relacionados as declarações de classes, que em algumas delas está faltando a palavra chave public que você deve inserir na mão, talvez a versão anterior do MQL não precisava dessas palavras chaves para compilar, mais nessa versão exige essa correção.
'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());
}
Depois de excluir o nó no índice 5, você itera o índice 6, mas o próximo elemento ainda é o índice 5.
É melhor usar 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();
}
Obrigado, este é um ótimo artigo e uma boa estrutura. Exatamente o que eu estava procurando.
Pretendo usá-lo com dinheiro real. Essa é a versão mais recente?
Muito obrigado
Boa tarde!
Vários erros estão sendo apresentados, já tentei corrigi-los mas sempre aparece mais um... se o objetivo era facilitar a vida dos iniciantes fica difícil desse jeito já estou perdendo a cabeça aqui..
Help Please!
Ótimo artigo!
Tive de alterar duas coisas para fazê-lo funcionar.
No arquivo "TableOrders.mqh" nesta função bool CTableOrders::Add(ulong Ticket,double stop_loss,double take_profit) linha 89, a variável m_type deve ser substituída por:
From:
m_type=order_info.Type();
Para:
m_type=order_info.OrderType();
A segunda também em "TableOrders.mqh":
From:
class CTableOrders : CObject
To:
class CTableOrders : public CObject
Atenciosamente,
A. HUPP
Boa tarde!
Vários erros estão sendo apresentados, já tentei corrigi-los mas sempre aparece mais um... se o objetivo era facilitar a vida dos iniciantes fica difícil desse jeito já estou perdendo a cabeça aqui..
Help Please!
Airton esse artigo é muito avançado para iniciantes, você deve entender primeiramente o conceito de desenvolvimento de aplicações Orientada a Objetos, hierarquias, polimorfismo, heranças, métodos virtuais, ou seja, precisa conhecer programação avançada, os erros encontratos nesses exemplos no entanto estão relacionados as declarações de classes, que em algumas delas está faltando a palavra chave public que você deve inserir na mão, talvez a versão anterior do MQL não precisava dessas palavras chaves para compilar, mais nessa versão exige essa correção.
Para compilar o arquivo simple_model.mq5, tive que adicionar "public":
class CModel: public CObject na linha 12
Ao compilar o MACD_MA_model.mq5, continuo recebendo este erro:
'MODE_OPEN' - identificador de enumerador já definido stdlib.mqh 13 4
Não consigo contornar esse erro que se refere à biblioteca subjacente.
Obrigado por seu artigo e pelo esforço para criar uma estrutura geral para testes.
Para compilar o arquivo simple_model.mq5, tive que adicionar "public":
class CModel: public CObject na linha 12
Ao compilar o MACD_MA_model.mq5, continuo recebendo este erro:
'MODE_OPEN' - identificador de enumerador já definido stdlib.mqh 13 4
Não consigo contornar esse erro que se refere à biblioteca subjacente.
Obrigado por seu artigo e pelo esforço de criar uma estrutura geral para testes.
https://www.mql5.com/en/forum/244512
Tentei descompilar, mas obtive erros
Há planos para corrigir o código?
min_risk = point * tick_value * symbol_info_.LotsStep();
você deve usar a contagem de ticks em vez da contagem de pontos.
tick_count = MathAbs(open_price - stop_loss) / symbol_info_.TickSize();
porque em alguns símbolos, o tamanho do tick != ponto
por exemplo:
Futuros\Mercadorias Agrícolas\#Café_H21:
Você não deve excluir o nó ao iterar a lista.
Por exemplo:
Depois de excluir o nó no índice 5, você itera o índice 6, mas o próximo elemento ainda é o índice 5.
É melhor usar GetFirstNode / GetNextNode
Obrigado por sua contribuição!