Olá, você poderia me ajudar a escrever uma função no MT4? Conheço meu saldo de conta, sei quantas negociações serão abertas (por exemplo, 9), conheço o risco (por exemplo, 3% do AccountBalance), preciso calcular um lote para a primeira negociação, se cada lote seguinte será duplicado e todas as negociações se sobreporão umas às outras.
Estou escrevendo aqui, pois parece não haver ninguém no mq4.
Você pode me dizer o que estou fazendo de errado? A opção 2 não está funcionando.
double A[][10];
int renge_A_one=0; // =ArrayRange(A, 0); // Размер первого измерения (число строк)int renge_A_two=0; // =ArrayRange(A, 1); // Размер второго измерения (число столбцов)double B[][10];
int renge_B_one=0; // =ArrayRange(A, 0); // Размер первого измерения (число строк)int renge_B_two=0; // =ArrayRange(A, 1); // Размер второго измерения (число столбцов)int count_B=0;
//+------------------------------------------------------------------+//| Вариант 1. Копируем строки "А" в "В" без изменений |//+------------------------------------------------------------------+void Fun_1()
{
renge_A_one==ArrayRange(A, 0); // Выясняем Размер первого измерения (число строк)
renge_A_two==ArrayRange(A, 1); // Выясняем Размер второго измерения (число столбцов). "На всякий случай"for(int i=0; i<range_A_one; i++) // Перебираем массив A[][10] по ПЕРВОМУ измерению.
{
count_B++;
ArrayResize(B, count_B);
for(int j=0; j<renge_A_two; j++) // Перебираем массив A[][10] по ВТОРОМУ измерению.
B[i][j]=A[i][j];
}
renge_B_one==ArrayRange(B, 0); // Выясняем Размер первого измерения (число строк)
renge_B_two==ArrayRange(B, 1); // Выясняем Размер второго измерения (число столбцов). "На всякий случай"
}
// Результат: "А" скопирован в "В" без изменений // renge_A_one = renge_В_one// renge_A_two = renge_В_two//+------------------------------------------------------------------+//| Вариант 2. Копируем строки "А" в "В" при условии |//+------------------------------------------------------------------+void Fun_2()
{
renge_A_one==ArrayRange(A, 0); // Выясняем Размер первого измерения (число строк)
renge_A_two==ArrayRange(A, 1); // Выясняем Размер второго измерения (число столбцов). "На всякий случай"for(int i=0; i<range_A_one; i++) // Перебираем массив A[][10] по ПЕРВОМУ измерению.
{
if(A[i][3]>0)
{
count_B++;
ArrayResize(B, count_B);
for(int j=0; j<renge_A_two; j++) // Перебираем массив A[][10] по ВТОРОМУ измерению.
B[i][j]=A[i][j];
}
}
renge_B_one==ArrayRange(B, 0); // Выясняем Размер первого измерения (число строк)
renge_B_two==ArrayRange(B, 1); // Выясняем Размер второго измерения (число столбцов). "На всякий случай"
}
// Результат: часть строк "В" с соответствующими значениями// часть строк "В" заполнена "0" полностью, при том, что в "А" заполнены ЗНАЧЕНИЯМИ// renge_A_one > renge_В_one// renge_A_two = renge_В_two
Arseniy Barudkin: Olá, por favor, ajude-me a escrever uma função no MT4. Conheço meu saldo de conta, sei quantas negociações serão abertas (por exemplo, 9), conheço o risco (por exemplo, 3% do AccountBalance), preciso calcular um lote para a primeira negociação, se cada lote seguinte será duplicado e todas as negociações se sobreporão umas às outras.
Isto é o que eu tenho. Por favor, diga-me o que está errado. Agradecemos antecipadamente!
Elementar. O erro é a funçãoGetLots(). A função completa.
Estou escrevendo aqui, porque parece não haver ninguém no mq4.
Você pode me dizer o que estou fazendo de errado? A opção 2 não funciona.
double A[][10];
int renge_A_one=0; // =ArrayRange(A, 0); // Размер первого измерения (число строк)int renge_A_two=0; // =ArrayRange(A, 1); // Размер второго измерения (число столбцов)double B[][10];
int renge_B_one=0; // =ArrayRange(A, 0); // Размер первого измерения (число строк)int renge_B_two=0; // =ArrayRange(A, 1); // Размер второго измерения (число столбцов)int count_B=0;
//+------------------------------------------------------------------+//| Вариант 1. Копируем строки "А" в "В" без изменений |//+------------------------------------------------------------------+void Fun_1()
{
renge_A_one==ArrayRange(A, 0);// Выясняем Размер первого измерения (число строк)renge_A_two==ArrayRange(A, 1);// Выясняем Размер второго измерения (число столбцов). "На всякий случай"for(int i=0; i<range_A_one; i++) // Перебираем массив A[][10] по ПЕРВОМУ измерению.
{
count_B++;
ArrayResize(B, count_B);
for(int j=0; j<renge_A_two; j++) // Перебираем массив A[][10] по ВТОРОМУ измерению.
B[i][j]=A[i][j];
}
renge_B_one==ArrayRange(B, 0); // Выясняем Размер первого измерения (число строк)
renge_B_two==ArrayRange(B, 1); // Выясняем Размер второго измерения (число столбцов). "На всякий случай"
}
// Результат: "А" скопирован в "В" без изменений // renge_A_one = renge_В_one// renge_A_two = renge_В_two//+------------------------------------------------------------------+//| Вариант 2. Копируем строки "А" в "В" при условии |//+------------------------------------------------------------------+void Fun_2()
{
renge_A_one==ArrayRange(A, 0); // Выясняем Размер первого измерения (число строк)
renge_A_two==ArrayRange(A, 1); // Выясняем Размер второго измерения (число столбцов). "На всякий случай"for(int i=0; i<range_A_one; i++) // Перебираем массив A[][10] по ПЕРВОМУ измерению.
{
if(A[i][3]>0)
{
count_B++;
ArrayResize(B, count_B);
for(int j=0; j<renge_A_two; j++) // Перебираем массив A[][10] по ВТОРОМУ измерению.
B[i][j]=A[i][j];
}
}
renge_B_one==ArrayRange(B, 0); // Выясняем Размер первого измерения (число строк)
renge_B_two==ArrayRange(B, 1); // Выясняем Размер второго измерения (число столбцов). "На всякий случай"
}
// Результат: часть строк "В" с соответствующими значениями// часть строк "В" заполнена "0" полностью, при том, что в "А" заполнены ЗНАЧЕНИЯМИ// renge_A_one > renge_В_one// renge_A_two = renge_В_two
Em destaque: deve haver uma tarefa - "=" e você tem uma comparação - "==".
Olá a todos! Estou aprendendo a escrever robôs no mt4, decidi começar com as opções binárias . Eu escrevi a EA mais fácil e o compilador gera um monte de avisos que não consigo entender ( Ajuda: "Oh MQL4 Guru" =)))))) Obrigado de antemão!)
Aqui está o código para a EA.
//+------------------------------------------------------------------+ //|Bolinger_Bands_traider.mq4 | //|Copyright 2017, Penrov Nikolay | //|vk.com/buzamonolit | //+------------------------------------------------------------------+ #Direitos autorais de propriedade "Copyright 2017, Petrov Nikolay" #link de propriedade "vk.com/buzamonolit" #propriedade versão "1.00" #propriedade rigorosa //+------------------------------------------------------------------+ //| função de iniciação de especialista| //+------------------------------------------------------------------+ Exterior int Bolinger_Bands = 20; // Período Bollinger Band Delta duplo externo = 0,0003; // A que distância para abrir o pedido
Symb; // Nome do instrumento financeiro. int Total; // Número de pedidos
//+------------------------------------------------------------------+ //| função de iniciação de especialista| //+------------------------------------------------------------------+ int init() { //---- Initialize_Objects(0); //---- retorno(0); } //+------------------------------------------------------------------+ //| função de desinicialização especializada| //+------------------------------------------------------------------+ int deinit() { //----
// Contagem de pedidos Symb=Símbolo();// Nome da barbatana.símbolo(); // símbolo(); // símbolo(); // símbolo(); // ícone de ordem(); // símbolo(). Total=0;// Número de pedidos for(int i=1; i<=OrdensTotal(); i++) // Laço de encomenda { se (OrderSelect(i-1,SELECT_BY_POS)==verdadeiro) // Se houver um próximo {// Análise de pedidos: se (OrderSymbol()!=Symb)continuar; // Não nosso instrumento financeiro se (OrderType()>1)// Temos uma ordem pendente { Alerta("Ordem pendente detectada. O Expert Advisor não está funcionando;) retorno(0);// Saída() } Total++;// Mercado de balcão. encomenda se (Total>1)// Não mais de um pedido { Alerta("Várias ordens de mercado. O Expert Advisor não está funcionando"); retorno(0);// Saída() } } }
int Initialize_Objects(int Win) // Usuário fie {// .criação de objetos ObjectCreate("Obj_Label",OBJ_LABEL, Win, 0,0); // criação de objetos ObjectSet("Obj_Label", OBJPROP_CORNER, 0); // Ligar a um canto ObjectSet("Obj_Label", OBJPROP_XDISTANCE, 13); // coordenada X se (Win==0) ObjectSet("Obj_Label",OBJPROP_YDISTANCE, 15);// Coordenada Y senão ObjectSet("Obj_Label",OBJPROP_YDISTANCE,15);// Coordenada Y
ObjectCreate("Obj_Label2",OBJ_LABEL,Win, 0,0); // Criação de objetos ObjectSet("Obj_Label2",OBJPROP_CORNER, 0); // Encadernação a um canto ObjectSet("Obj_Label2", OBJPROP_XDISTANCE, 13); // coordenada X se (Win==0) ObjectSet("Obj_Label2",OBJPROP_YDISTANCE, 35);// Coordenada Y senão ObjectSet("Obj_Label2",OBJPROP_YDISTANCE, 35);//Y Coordinate
ObjectCreate("Obj_Label3",OBJ_LABEL, Win, 0,0); // Criar objeto ObjectSet("Obj_Label3",OBJPROP_CORNER, 0); // Encadernação a um canto ObjectSet("Obj_Label3", OBJPROP_XDISTANCE, 13); // coordenada X se (Win==0) ObjectSet("Obj_Label3",OBJPROP_YDISTANCE, 55);// Coordenada Y senão ObjectSet("Obj_Label3",OBJPROP_YDISTANCE, 55);//Y Coordinate
Aqui estão os avisos. Eu não consigo descobrir do que ele não gosta(
possível perda de dados devido à conversão do tipo Bolinger_Bands_traider.mq4 51 24 conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 76 35 conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 76 227 conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 77 43 conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 78 43 conversão implícita de 'string' para 'número' Bolinger_Bands_traider.mq4 85 71 conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 93 23 conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 93 91 conversão implícita de 'string' para 'número' Bolinger_Bands_traider.mq4 99 72 conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 107 23 conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 107 91 0 erro(s), 11 advertência(ões), tempo de compilação: 204 msec 1 12
Talvez você possa me dizer como escrevê-lo corretamente. Eu queria calcular usando um laço, tentando a partir do lote máximo.
Onde está a lógica? Você fixa o lote máximo permitido para a primeira encomenda e depois o aumenta para cada encomenda sucessiva. Isso não lhe parece, para dizer de forma branda, pouco sensato?
Além disso, você diminui o lote da primeira ordem no laço usando algum método totalmente incompreensível, enquanto os lotes das outras ordens que foram "calculadas" antes permanecem inalterados, e estes valores não vão além dos limites desta função. Então, o que eles fazem?
Sem mencionar que o laço de incremento não pode ser um número real, ele tem que ser um contador, um inteiro. Mas você define o valor do lote como um contador e subtrai um dele a cada iteração. Este é um grande erro, um erro muito grave.
Esclareça primeiro a lógica em sua mente e depois tente implementá-la em seu código.
Mas aqui estão os avisos. Eu não consigo entender o que ele não gosta(
possível perda de dados devido à conversão do tipo Bolinger_Bands_traider.mq4 51 24 conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 76 35 conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 76 227 conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 77 43 conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 78 43 conversão implícita de 'string' para 'número' Bolinger_Bands_traider.mq4 85 71 conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 93 23 conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 93 91 conversão implícita de 'string' para 'número' Bolinger_Bands_traider.mq4 99 72 conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 107 23 conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 107 91 0 erro(s), 11 advertência(ões), tempo de compilação: 204 msec 1 12
Saída de uma linha com o número 51, pois aqui não há contagem para entender o erro"possível perda de dados devido à conversão do tipo Bolinger_Bands_traider.mq4 51 24".
O resto: "conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 107 91
traduzir valores numéricos em uma cadeia de texto onde criamos o objeto - uma cadeia de texto, por exemplo
Isto é o que eu tenho. Por favor, diga-me o que está errado. Agradecemos antecipadamente!
Olá!
Estou escrevendo aqui, pois parece não haver ninguém no mq4.
Você pode me dizer o que estou fazendo de errado? A opção 2 não está funcionando.
Olá, por favor, ajude-me a escrever uma função no MT4. Conheço meu saldo de conta, sei quantas negociações serão abertas (por exemplo, 9), conheço o risco (por exemplo, 3% do AccountBalance), preciso calcular um lote para a primeira negociação, se cada lote seguinte será duplicado e todas as negociações se sobreporão umas às outras.
Isto é o que eu tenho. Por favor, diga-me o que está errado. Agradecemos antecipadamente!
Olá!
Estou escrevendo aqui, porque parece não haver ninguém no mq4.
Você pode me dizer o que estou fazendo de errado? A opção 2 não funciona.
Em destaque: deve haver uma tarefa - "=" e você tem uma comparação - "==".
Olá a todos!
Estou aprendendo a escrever robôs no mt4, decidi começar com as opções binárias . Eu escrevi a EA mais fácil e o compilador gera um monte de avisos que não consigo entender (
Ajuda: "Oh MQL4 Guru" =))))))
Obrigado de antemão!)
Aqui está o código para a EA.
//+------------------------------------------------------------------+
//|Bolinger_Bands_traider.mq4 |
//|Copyright 2017, Penrov Nikolay |
//|vk.com/buzamonolit |
//+------------------------------------------------------------------+
#Direitos autorais de propriedade "Copyright 2017, Petrov Nikolay"
#link de propriedade "vk.com/buzamonolit"
#propriedade versão "1.00"
#propriedade rigorosa
//+------------------------------------------------------------------+
//| função de iniciação de especialista|
//+------------------------------------------------------------------+
Exterior int Bolinger_Bands = 20; // Período Bollinger Band
Delta duplo externo = 0,0003; // A que distância para abrir o pedido
Symb; // Nome do instrumento financeiro.
int Total; // Número de pedidos
//+------------------------------------------------------------------+
//| função de iniciação de especialista|
//+------------------------------------------------------------------+
int init()
{
//----
Initialize_Objects(0);
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de desinicialização especializada|
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de partida de especialista|
//+------------------------------------------------------------------+
int start()
{
//----
preço duplo = Licitação;
duplo CurrBol_High = iBands(Symb,0, Bolinger_Bands, 0,0, PRICE_CLOSE, MODE_UPPER, 0);
duplo CurrBol_Low = iBands(Symb,0, Bolinger_Bands, 0,0, PRICE_CLOSE, MODE_LOWER, 0);
double PriceBol_High = preço - CurrBol_High;
double PriceBol_Low = preço - CurrBol_Low;
data/hora PróximoFechar = Hora[0] + Período()*60*2;
int MinutesToNextClose = (NextClose - TimeCurrent())/60 + 1;
int err;
// Contagem de pedidos
Symb=Símbolo();// Nome da barbatana.símbolo(); // símbolo(); // símbolo(); // símbolo(); // ícone de ordem(); // símbolo().
Total=0;// Número de pedidos
for(int i=1; i<=OrdensTotal(); i++) // Laço de encomenda
{
se (OrderSelect(i-1,SELECT_BY_POS)==verdadeiro) // Se houver um próximo
{// Análise de pedidos:
se (OrderSymbol()!=Symb)continuar; // Não nosso instrumento financeiro
se (OrderType()>1)// Temos uma ordem pendente
{
Alerta("Ordem pendente detectada. O Expert Advisor não está funcionando;)
retorno(0);// Saída()
}
Total++;// Mercado de balcão. encomenda
se (Total>1)// Não mais de um pedido
{
Alerta("Várias ordens de mercado. O Expert Advisor não está funcionando");
retorno(0);// Saída()
}
}
}
ObjectSetText("Obj_Label", "TF" + Período() + ", " + DoubleToStr(price, 5) + ", tick " + TimeToStr(TimeCurrent(), TIME_SECONDS) + ", O@" + TimeToStr(Time[0], TIME_MINUTES) + ", NC@". + TimeToStr(NextClose, TIME_MINUTES) + " (" + MinutesToNextClose + " min)", 10, "Arial", DarkGreen );
ObjectSetText("Obj_Label2", "Ordens:" + Total + ", delta " + DoubleToStr(Delta,5) + ", distância para MA:" + DoubleToStr(PriceBol_High, 5), 10, "Arial", DarkGreen );
ObjectSetText("Obj_Label3", "Ordens: " + Total + ", Delta " + DoubleToStr(Delta,5) + ", distância para MA:" + DoubleToStr(PriceBol_Low, 5), 10, "Arial", DarkGreen );
// análise de preços e abertura de pedidos
if ((MathAbs(PriceBol_Low) < Delta) && (price > CurrBol_Low) && (Open[0] > CurrBol_Low+Delta) && (Total<1))
{
if (OrderSend(Symbol(), OP_BUY, 1.00,Bid , 3, 0, 0, "BO exp:900", 0,DoubleToStr(MinutesToNextClose,0), Verde) >0) Imprimir ("Opened OK");
senão
{
err=GetLastError();
Imprimir("erro(",err,"));
retorno(0);
}
Imprimir ("CALL @ " + preço + " + TimeToStr(TimeCurrent(), TIME_SECONDS) + " exp em " + MinutesToNextClose);
}
if ((MathAbs(PriceBol_High) < Delta) && (price < CurrBol_High) && (Open[0] < CurrBol_High-Delta) && (Total<1))
{
if (OrderSend(Symbol(), OP_SELL, 1.00,Bid , 3, 0, 0, "BO exp:900", 0,DoubleToStr(MinutesToNextClose,0), Vermelho) > 0) Imprimir ("Opened OK");
senão
{
err=GetLastError();
Imprimir("erro(",err,"));
retorno(0);
}
Imprimir ("PUT @ " + preço + " + TimeToStr(TimeCurrent(), TIME_SECONDS) + " exp em " + MinutesToNextClose);
}
//----
retorno(0);
}
//+------------------------------------------------------------------+
int Initialize_Objects(int Win) // Usuário fie
{// .criação de objetos
ObjectCreate("Obj_Label",OBJ_LABEL, Win, 0,0); // criação de objetos
ObjectSet("Obj_Label", OBJPROP_CORNER, 0); // Ligar a um canto
ObjectSet("Obj_Label", OBJPROP_XDISTANCE, 13); // coordenada X
se (Win==0)
ObjectSet("Obj_Label",OBJPROP_YDISTANCE, 15);// Coordenada Y
senão
ObjectSet("Obj_Label",OBJPROP_YDISTANCE,15);// Coordenada Y
ObjectCreate("Obj_Label2",OBJ_LABEL,Win, 0,0); // Criação de objetos
ObjectSet("Obj_Label2",OBJPROP_CORNER, 0); // Encadernação a um canto
ObjectSet("Obj_Label2", OBJPROP_XDISTANCE, 13); // coordenada X
se (Win==0)
ObjectSet("Obj_Label2",OBJPROP_YDISTANCE, 35);// Coordenada Y
senão
ObjectSet("Obj_Label2",OBJPROP_YDISTANCE, 35);//Y Coordinate
ObjectCreate("Obj_Label3",OBJ_LABEL, Win, 0,0); // Criar objeto
ObjectSet("Obj_Label3",OBJPROP_CORNER, 0); // Encadernação a um canto
ObjectSet("Obj_Label3", OBJPROP_XDISTANCE, 13); // coordenada X
se (Win==0)
ObjectSet("Obj_Label3",OBJPROP_YDISTANCE, 55);// Coordenada Y
senão
ObjectSet("Obj_Label3",OBJPROP_YDISTANCE, 55);//Y Coordinate
retorno(0);// Saída do usuário.função
}
Aqui estão os avisos. Eu não consigo descobrir do que ele não gosta(
possível perda de dados devido à conversão do tipo Bolinger_Bands_traider.mq4 51 24
conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 76 35
conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 76 227
conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 77 43
conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 78 43
conversão implícita de 'string' para 'número' Bolinger_Bands_traider.mq4 85 71
conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 93 23
conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 93 91
conversão implícita de 'string' para 'número' Bolinger_Bands_traider.mq4 99 72
conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 107 23
conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 107 91
0 erro(s), 11 advertência(ões), tempo de compilação: 204 msec 1 12
Elementar. O erro é a funçãoGetLots(). A função completa.
Talvez você possa me dizer como escrevê-lo corretamente. Eu queria calcular usando loop by brute forcing do lote máximo.
Talvez você possa me dizer como escrevê-lo corretamente. Eu queria calcular usando um laço, tentando a partir do lote máximo.
Onde está a lógica? Você fixa o lote máximo permitido para a primeira encomenda e depois o aumenta para cada encomenda sucessiva. Isso não lhe parece, para dizer de forma branda, pouco sensato?
Além disso, você diminui o lote da primeira ordem no laço usando algum método totalmente incompreensível, enquanto os lotes das outras ordens que foram "calculadas" antes permanecem inalterados, e estes valores não vão além dos limites desta função. Então, o que eles fazem?
Sem mencionar que o laço de incremento não pode ser um número real, ele tem que ser um contador, um inteiro. Mas você define o valor do lote como um contador e subtrai um dele a cada iteração. Este é um grande erro, um erro muito grave.
Esclareça primeiro a lógica em sua mente e depois tente implementá-la em seu código.
Mas aqui estão os avisos. Eu não consigo entender o que ele não gosta(
possível perda de dados devido à conversão do tipo Bolinger_Bands_traider.mq4 51 24
conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 76 35
conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 76 227
conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 77 43
conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 78 43
conversão implícita de 'string' para 'número' Bolinger_Bands_traider.mq4 85 71
conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 93 23
conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 93 91
conversão implícita de 'string' para 'número' Bolinger_Bands_traider.mq4 99 72
conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 107 23
conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 107 91
0 erro(s), 11 advertência(ões), tempo de compilação: 204 msec 1 12
Saída de uma linha com o número 51, pois aqui não há contagem para entender o erro"possível perda de dados devido à conversão do tipo Bolinger_Bands_traider.mq4 51 24".
O resto: "conversão implícita de 'número' para 'string' Bolinger_Bands_traider.mq4 107 91
traduzir valores numéricos em uma cadeia de texto onde criamos o objeto - uma cadeia de texto, por exemplo
período()
deveria ser
DoubleToString(Período(),0)
traduzir os valores numéricos para uma cadeia de texto onde criamos um objeto de cadeia de texto, por exemplo
período()
deveria ser
DoubleToString(Período(),0)
Desde quando o período é um tipo duplo?