Eu tenho um EA que faz certos cálculos. Utiliza diferentes operações matemáticas, arrays, loops. Ele salva o resultado em um arquivo. Tem que começar tudo desde o início, depois de ter realizado todas as ações. Ele fez todos os cálculos uma vez e depois fica pendurado pela segunda vez sem nenhuma outra ação. Você pode aconselhar se é necessário zerar variáveis, limpar arrays ou algo mais antes de iniciar um novo cálculo?
Boa tarde! Preciso de ajuda para um humanitário (eu) que está tentando fazer um indicador com o mínimo de conhecimento de como fazê-lo)))))) mas tenha uma compreensão do que deve aparecer))) Assim: Como programar uma muleta/indicador/script (como um indicador com abas "sobre, geral, parâmetros de entrada, cores, display") para o MT4 para que ele pegasse os dados de um arquivo .csv, por exemplo, o formato doarquivo fonte:
EUR;TF;1.192;1.1733
EUR;TN;1.2037;1.1663
EUR;AB1;1.1906499615;1.1797479615
CHF;TF;1.0362;1.0183
CHF;TN;1.0479;1.0121
CHF;AB1;1.03484132734247;1.02549513556164
Ou seja,o indicador tomou os dados registrados de um arquivo e os colocoucomo um segmento de linha (TF, TA) ou uma faixa colorida(EA) com os parâmetros de extensão igual a "um dia". (da borda até a borda dos separadores verticais de dias em МТ4), para seleção das linhas de cor, tipo de linha, seleção da cor do texto e tamanho do comentário e substituição da linha de comentário como "TF - 1.192" pela segunda linha "TF - 1.1733" que são retiradas das linhas correspondentes do arquivo. O intervalo é puramente horizontal e a partir da linha EUR;TF;1.192;1.1733 é tomado o primeiro dígito para um slot e o segundo dígito para o segundo como o início do slot 1.192 e o final do slot 1.192. Há também faixas, por exemplo EA, o princípio é o mesmo do início ao fim do dia, mas o preço é diferente e a linha começa e termina com CHF;AB1;1.03484132734247;1.02549513556164 início é1.03484132734247 fim da faixa1.02549513556164. Ele funciona quando você liga o MT4 (como um indicador usual no gafik), todos os dias no gráfico e adiciona todos os dados exatamente para o dia atual uma vez, todas as linhas aplicadas anteriormente não são deletadas do gráfico e não o duplicam. Com tudo isso ele seleciona e exibe todos os segmentos e intervalos do dia, apenas onde a janela ativa está agora e em outras janelas ativas (ou seja, onde está funcionando) (ou seja, ele abriu um par e o indicador desenhou todos os segmentos e intervalos do dia atual e acalmou e assim por diante para os pares).
Por exemplo, como deve ser a aba do indicadorParâmetros de entrada:
Переменная________Значение
Funtik________//--Общие настройки--//
Desenho TF________true
Sorteio TN _______true
Sorteio AB1______true
Sorteio AB2______falso
Cor da legenda do texto _______Preto
Шрифт подписей__________________Arial
Tamanho da fonte para legendas de texto ________ 9
Cor da linha TF ______________
Linha tipo TF _______________
Cor da linha TN ______________
Linha tipo TN _______________
Cor da banda AB1__________
Cor da banda AB2__________
Freqüência de arquivos em segundos ______ 2
Nome do arquivo ___________ 5.csv
tentei me rabiscar, mas não consegui nada embora parecesse fácil (mas eu sou um humanitário, o que você pode fazer....) Ajude por favor afogando-se !!!!!!!!
Período externo_MA = 365; //Período MA 1 Delta duplo externo = 0,0010; // A distância em que o pedido pode ser aberto
Symb de corda; //Nome do instrumento comercial //int Total; //número de pedidos
//+------------------------------------------------------------------+ //| função de iniciação de especialista| //+------------------------------------------------------------------+ int init() { //----
//---- retorno(0); } //+------------------------------------------------------------------+ //| função de desinicialização especializada| //+------------------------------------------------------------------+ int deinit() { //---- ObjectDelete("Object_Label"); ObjectDelete("Obj_Label2"); //---- retorno(0); } //+------------------------------------------------------------------+ //| função de partida de especialista| //+------------------------------------------------------------------+ int start() {
preço duplo = Licitação;//preço atual valor duplo CurrMAValor = iMA(Symb, Period(),Period_MA, 0,Mode_EMA, PRICE_CLOSE, 0); //o valor da Média Móvel duplo Preço2MA = preço - CurrMAValor;//distância entre MA e preço data/hora NextClose = Hora(0) + Período()*60*2;// tempo para fechar int MinutesToNextClose = (NextClose - TimeCurrent())/60 + 1; // tempo para fechar em minutos
se ((MathAbs(Price2MA) < Delta) &&/ se a distância até МА for menor que o delta (Preço > CurrMAValue) &&/ e o preço é mais alto que MA (Open(0) > CurrMAValue+Delta) // e a vela atual se abriu mais alto que MA+Delta ( Alerta ("O preço está se aproximando do MA de cima;) )
se ((MathAbs(Price2MA) < Delta) &&/ se a distância para o MA for menor que o delta (preço < CurrMAValue) &&/ e o preço está abaixo do MA (Open(0) < CurrMAValue-Delta)) // e a vela atual aberta abaixo do delta MA (
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Куда исчезли "Сообщения"? У меня в профиле исчез раздел...
Favor informar como corrigir o erro de quantidade de lotes inválidos para a função FreeMarginCheck na EA, ao definir acidentalmente o valor negativo do volume (lote). Ter uma mensagem sobre o lote errado, sem mensagem de erro, no testador
pré_calculado - crie um análogo por conta própria, declare-o globalmente (ou estaticamente) e escreva ali o número de barras realmente calculado na iteração atual. Isso significa que, após cálculos bem sucedidos dos valores do indicador, precisamos registrar o número de barras atuais nele. Se os cálculos não forem bem sucedidos, é melhor anulá-lo a fim de recalcular os valores indicadores para cada barra da história na próxima iteração.
Entre parênteses, o argumento da função peca(30) Entre parênteses rectos, o índice da matriz x[25]. início nulo() { Em bloco de operador com aparelho de frisar }
STARIJ: Entre parênteses, o argumento da função pecado(30) entre colchetes, o índice da matriz x[25] início nulo() { Em bloco de operador com aparelho de frisar }
Obrigado, ainda não compila! Mesmo que você coloque uma cinta no final, o que eu notei 17
Boa tarde!
Eu tenho um EA que faz certos cálculos. Utiliza diferentes operações matemáticas, arrays, loops. Ele salva o resultado em um arquivo. Tem que começar tudo desde o início, depois de ter realizado todas as ações. Ele fez todos os cálculos uma vez e depois fica pendurado pela segunda vez sem nenhuma outra ação. Você pode aconselhar se é necessário zerar variáveis, limpar arrays ou algo mais antes de iniciar um novo cálculo?
Você já tentou fechar o arquivo?
Como programar uma muleta/indicador/script (como um indicador com abas "sobre, geral, parâmetros de entrada, cores, display") para o MT4 para que ele pegasse os dados de um arquivo .csv, por exemplo, o formato doarquivo fonte:
Ou seja,o indicador tomou os dados registrados de um arquivo e os colocoucomo um segmento de linha (TF, TA) ou uma faixa colorida(EA) com os parâmetros de extensão igual a "um dia". (da borda até a borda dos separadores verticais de dias em МТ4), para seleção das linhas de cor, tipo de linha, seleção da cor do texto e tamanho do comentário e substituição da linha de comentário como "TF - 1.192" pela segunda linha "TF - 1.1733" que são retiradas das linhas correspondentes do arquivo. O intervalo é puramente horizontal e a partir da linha EUR;TF;1.192;1.1733 é tomado o primeiro dígito para um slot e o segundo dígito para o segundo como o início do slot 1.192 e o final do slot 1.192.
Há também faixas, por exemplo EA, o princípio é o mesmo do início ao fim do dia, mas o preço é diferente e a linha começa e termina com CHF;AB1;1.03484132734247;1.02549513556164 início é1.03484132734247 fim da faixa1.02549513556164. Ele funciona quando você liga o MT4 (como um indicador usual no gafik), todos os dias no gráfico e adiciona todos os dados exatamente para o dia atual uma vez, todas as linhas aplicadas anteriormente não são deletadas do gráfico e não o duplicam. Com tudo isso ele seleciona e exibe todos os segmentos e intervalos do dia, apenas onde a janela ativa está agora e em outras janelas ativas (ou seja, onde está funcionando) (ou seja, ele abriu um par e o indicador desenhou todos os segmentos e intervalos do dia atual e acalmou e assim por diante para os pares).
Por exemplo, como deve ser a aba do indicadorParâmetros de entrada:
tentei me rabiscar, mas não consegui nada embora parecesse fácil (mas eu sou um humanitário, o que você pode fazer....) Ajude por favor afogando-se !!!!!!!!
Olá!
Por favor, ajude-me a encontrar um bug no seguinte programa!!!
//+------------------------------------------------------------------+
//|teste.mq4 |
//| Copyright 2018, MetaQuotes Software Corp.
//|https://wwww.mql5.com |||||mql5.com
//+------------------------------------------------------------------+
#propriedade copyright "365_MA
#link da propriedade "https://www.mql5.com"
#propriedade versão "1.00"
#propriedade rigorosa
Período externo_MA = 365; //Período MA 1
Delta duplo externo = 0,0010; // A distância em que o pedido pode ser aberto
Symb de corda; //Nome do instrumento comercial
//int Total; //número de pedidos
//+------------------------------------------------------------------+
//| função de iniciação de especialista|
//+------------------------------------------------------------------+
int init()
{
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de desinicialização especializada|
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectDelete("Object_Label");
ObjectDelete("Obj_Label2");
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de partida de especialista|
//+------------------------------------------------------------------+
int start()
{
preço duplo = Licitação;//preço atual
valor duplo CurrMAValor = iMA(Symb, Period(),Period_MA, 0,Mode_EMA, PRICE_CLOSE, 0); //o valor da Média Móvel
duplo Preço2MA = preço - CurrMAValor;//distância entre MA e preço
data/hora NextClose = Hora(0) + Período()*60*2;// tempo para fechar
int MinutesToNextClose = (NextClose - TimeCurrent())/60 + 1; // tempo para fechar em minutos
//int err;
//refazer as informações de texto no gráfico
ObjectSetText ("Obj_Label", "TF" + Período() + ", " + DoubleToStr(price, 4) + ", tick " + TimeToStr(TimeCurrent(), TIME_SECONDS) + ", O@" + TimeToStr(Time[0], TIME_MINUTES) + ", NC@". + TimeToStr(NextClose, TIME_MINUTES) + " (" + MinutesToNextClose + " min)", 10,
ObjectSetText ("Obj_Label2", "Delta " + DoubleToStr(Delta,4) + ", valor MA " + DoubleToStr(CurrMAValue, 4) + ", distância para MA " + DoubleToStr(Price2MA, 4), 10, "Arial", DarkGreen );
//considerar preço e gerar alertas
se ((MathAbs(Price2MA) < Delta) &&/ se a distância até МА for menor que o delta
(Preço > CurrMAValue) &&/ e o preço é mais alto que MA
(Open(0) > CurrMAValue+Delta) // e a vela atual se abriu mais alto que MA+Delta
(
Alerta ("O preço está se aproximando do MA de cima;)
)
se ((MathAbs(Price2MA) < Delta) &&/ se a distância para o MA for menor que o delta
(preço < CurrMAValue) &&/ e o preço está abaixo do MA
(Open(0) < CurrMAValue-Delta)) // e a vela atual aberta abaixo do delta MA
(
Alerta ("Preço aproximado abaixo do MA;)
)
retorno(0);
//+------------------------------------------------------------------+
Após a compilação do seguinte erro
Olá!
Por favor, ajude-me a encontrar um bug no seguinte programa!!!
Após a compilação do seguinte erro.
Um suporte encaracolado foi deixado de fora.
Preciso integrar ziguezague no meu indicador (agora ele está contando por manivela)
A questão é que meu indicador não usa OnCalculate().
Então como faço para que o ziguezague funcione e como faço para obter taxas_totais e pré_calculadas?
O total de tarifas é o número de barras no gráfico. É determinado usando a função de Barras.
pré_calculado - crie um análogo por conta própria, declare-o globalmente (ou estaticamente) e escreva ali o número de barras realmente calculado na iteração atual. Isso significa que, após cálculos bem sucedidos dos valores do indicador, precisamos registrar o número de barras atuais nele. Se os cálculos não forem bem sucedidos, é melhor anulá-lo a fim de recalcular os valores indicadores para cada barra da história na próxima iteração.
Re: Alekseu Fedotov
O que é um aparelho, desculpe
Re: Alekseu Fedotov
O que é um aparelho, desculpe
Entre parênteses rectos, o índice da matriz x[25].
início nulo()
{
Em bloco de operador com aparelho de frisar
}
Entre parênteses, o argumento da função pecado(30)
entre colchetes, o índice da matriz x[25]
início nulo()
{
Em bloco de operador com aparelho de frisar
}