Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1431

 
Vitaly Muzichenko:

---

Mas deve ser ordenado a partir do fio no OnInit()

Muito obrigado! considerei esta opção, mas por causa do meu analfabetismo como codificador algo deu errado), mas agora se você me permite mais uma pergunta.
Tudo funciona, mas há um aviso: conversão implícita de 'string' para 'número' , como removê-lo? É possível?

 
Александр:
Muito obrigado! considerei esta opção, mas por causa do meu analfabetismo como codificador algo deu errado), mas agora se você me permite mais uma pergunta.
Tudo funciona, mas recebo um aviso: conversão implícita de 'string' para 'número' , como posso me livrar dele? É possível?

Carregou o código

 
Fantástico, super. Sucesso espacial para você em seus esforços. Obrigado por sua ajuda.
 
Maxim Kuznetsov:

É assim por aqui... um bom código deve ser suficiente.

Temos outros para isso...))
 

Tarde

Tentando criar 2 arquivos para a copiadora MT4-MT5:

string path, path1;
    int hend; 
    path=CopierNumber+"MasterOrdersV.csv";   
    hend=FileOpen(path,FILE_CSV|FILE_WRITE,',');
    if(hend>0)
    {
        FileWrite(hend,"Symbol","Ticket","Lot size","Direction","Price","StopLoss","Takeprofit","Open time");
        FileClose(hend);
    }
    path1=CopierNumber+"MasterOrders.csv";    
    hend=FileOpen(path1,FILE_CSV|FILE_COMMON|FILE_WRITE|FILE_SHARE_READ,',');
    if(hend>0)
    {
        FileWrite(hend,"Symbol","Ticket","Lot size","Direction","Price","StopLoss","Takeprofit","Open time");
        FileClose(hend);
    } 
Quando eu tento ler :

O mesmo código no MT5 escreve tudo corretamente:


Estou tendo algum tipo de problema ou alguma coisa caiu no MT4?

 
Acho que consegui - o problema está no Open Office, obrigado
 

Colegas, ajuda com o algoritmo e funções matemáticas, você pode simplesmente usar funções matemáticas, a tarefa é fechar uma posição de mercado em 5 porções.

Isto é, por exemplo, uma posição de mercado de 10,24 lotes ou 5,12 lotes deve ser coberta com partes aproximadamente iguais de 5 partes. Podemos tornar um dos restantes maior do que os outros para cobrir o volume restante depois que as quatro primeiras posições forem fechadas.

Este tópico com a ajuda das funções do cônjuge não é muito adequado, na minha opinião, ele precisa de algo para completar.... COMO contar de forma ideal lotes de cada uma das 5 ações (partes) para fechar uma posição comum.

Возвращает вещественный остаток от деления двух чисел.



double  MathMod( 
   double  value,      // делимое 
   double  value2      // делитель 
   );
 

Параметры

value

[in]  Значение делимого.

value2

[in]  Значение делителя.

Возвращаемое значение

Функция MathMod рассчитывает вещественный остаток f от val / y таким образом, что val = i * y + f , где i является целым числом, f имеет тот же знак, что и val, и абсолютное значение f меньше, чем абсолютное значение y.

Примечание

Вместо функции MathMod() можно использовать функцию fmod().
 
Roman Shiredchenko:

Colegas, ajuda com o algoritmo e funções matemáticas, você pode simplesmente usar funções matemáticas, a tarefa é fechar uma posição de mercado em 5 porções.

Isto é, por exemplo, uma posição de mercado de 10,24 lotes ou 5,12 lotes deve ser coberta com partes aproximadamente iguais no total de 5 partes. Podemos tornar um dos restantes maior do que os outros para cobrir o volume restante depois que as quatro primeiras posições forem fechadas.

Este tópico com a ajuda das funções do cônjuge não é muito adequado, na minha opinião, ele precisa de algo para completar.... COMO contar de forma otimizada lotes de cada uma das 5 partes (partes) para fechar uma posição comum.

Uma divisão por 5 é uma divisão por 5 :-)

lots_1to4=NormalizeLots(lots/5); // лоты для 1,2,3,4 ; округление лота сами добавите

lots5 = NormalizeLots(lots - lots_1to4*5); // для 5 - оставшиеся лоты

 
Maxim Kuznetsov:

uma divisão por 5 é uma divisão por 5 :-)

lots_1to4=NormalizeLots(lots/5); // лоты для 1,2,3,4 ; округление лота сами добавите

lots5 = NormalizeLots(lots - lots_1to4*5); // для 5 - оставшиеся лоты

О! Spc. Exatamente - através da diferença de arredondamento para baixo e do total inicial!!! Arredondamento através do mesmo?

Возвращает ближайшее снизу целое числовое значение.



double  MathFloor( 
   double  val     // число 
   );
 

Параметры

val

[in]  Числовое значение.

Возвращаемое значение

Числовое значение, представляющее наибольшее целое число, которое меньше или равно val.

Примечание

Вместо функции MathFloor() можно использовать функцию floor().
 
Ajuda a fazer um alerta para um indicador, não consegue encontrar um com um sinal
Arquivos anexados:
Razão: