Por favor, ajude. Não consigo entender o loop for(), o tempo todo após a atualização, por causa do offset(iMA(NULL,PERIOD_M1,1,1,MODE_SMA,PRICE_OPEN,i)) O indicador vermelho!
//+------------------------------------------------------------------+//| help.mq4 |//| Copyright 2014, MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+#property copyright"2005-2014, MetaQuotes Software Corp."#property link"http://www.mql4.com"#property strict#include <MovingAverages.mqh>
//--- indicator settings#property indicator_separate_window#property indicator_buffers2#property indicator_color1 clrSilver#property indicator_color2 clrRed#property indicator_width1 2//--- indicator parametersinputint SignalSMA=8; // Signal SMA Period//--- indicator buffersdouble ExtBuffer[];
double ExtSignalBuffer[];
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit(void)
{
IndicatorDigits(Digits+1);
//--- drawing settingsSetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_LINE);
//--- indicator buffers mappingSetIndexBuffer(0,ExtBuffer);
SetIndexBuffer(1,ExtSignalBuffer);
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Moving Averages Convergence/Divergence |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
int i,limit;
//--- last counted bar will be recounted
limit=rates_total-prev_calculated;
if(prev_calculated>0)
limit++;
//--- counted in the 1-st bufferfor(i=0;i<limit;i++)
ExtBuffer[i]=(
iMA(NULL,PERIOD_CURRENT,1,0,MODE_SMA,PRICE_HIGH,i)
+iMA(NULL,PERIOD_M1,1,1,MODE_SMA,PRICE_OPEN,i)
);
//--- signal line counted in the 2-nd buffer
SimpleMAOnBuffer(rates_total,prev_calculated,0,SignalSMA,ExtBuffer,ExtSignalBuffer);
//--- donereturn(rates_total);
}
//+------------------------------------------------------------------+
Na minha opinião, a abordagem não é de modo algum lógica. Por que definir o dia da semana? Que diferença faz em que dia é, se a condição deve dizer "não abrir mais do que xxx ordens hoje"?
Parece-me mais lógico contar as ordens abertas hoje e especificar a condição correspondente.
não há data de abertura do pedido no estado.
Se você sabe, por favor escreva como fazer isso) Não entendo como garantir que em um determinado dia não sejam abertos mais de um n-ésimo número de pedidos durante o dia inteiro.
Por favor, ajude. Não consigo entender o loop for(), o tempo todo após a atualização, por causa do offset(iMA(NULL,PERIOD_M1,1,1,MODE_SMA,PRICE_OPEN,i)) O indicador vermelho!
Agradeço antecipadamente.
Os MAs têm TFs diferentes. Você precisa encaixar o cronograma mais alto no TF M1, ou seja, contar os MAs duas vezes com números diferentes de carrapatos. Neste caso, um e o mesmo valor do período mais antigo será adicionado aos diferentes valores do mais jovem.
Se você olhar através de i você recebe, por exemplo, 10 velas do período D1 e 10 M1. Logicamente, algo está errado....
Outra coisa, se o indicador estiver definido no M1, provavelmente funcionará sem rebrisings
cripple: Sim, você está certo, mas minha mente ainda não é suficiente para descobrir como fazer a M1 contar corretamente
Além disso, será necessário sincronizar M1 com um cronograma maior, pois 1 barra de M5 não corresponderá necessariamente a 5 velas de M1, podendo ser 4 ou 1.
cripple: Sim, você está certo, mas minha mente ainda não é suficiente para entender como fazer M1 contar corretamente
Tente
intBars(
string symbol_name, // имя символаENUM_TIMEFRAMES timeframe, // периодdatetimestart_time, // с какой датыdatetime stop_time // по какую дату
);
tempo da i-ésima barra e colocar o número da barra resultante em vez da i.
LRA: Caro novikov433!!! Ensine você a programar, ou escreva um Expert Advisor gratuito ou ambos!! Em troca, ensine-me como as ordens deficitárias são traduzidas em sem perdas. Você pode usar um exemplo simples. Eu dou uma ordem a minha esposa (ordem): compre um balde de batatas de manhã cedo no mercado, e às 10 horas (análise fundamental) o preço sobe - venda. Mas às vezes um caminhão cheio de batatas chega às 10h30 (notícias). E o preço (nas notícias) cai instantaneamente e dura até o final do dia, ou mesmo durante a semana inteira. Eu coloco um Stop Loss - se o preço cai por 10 rublos, eu vendo assim que posso (ao preço de mercado). Como mudar o pedido, para evitar perdas. Se esta variante for interessante - envie-nos seu e-mail.
O problema é que o mercado foi ligeiramente para o lado necessário e depois voltou, então é preciso fechar o negócio no ponto de equilíbrio e abri-lo para o contrário. viciei-me assim que comecei. mais uma vez me convenci de que é uma besteira negociar com as mãos. como entendo porque preciso escrever tantos componentes no meu código?
ax00071: Obrigado por sua atenção )) Eu sou um otário ... ... ao fechar, tive a condição de fechar o negócio às 22:00 de sexta-feira, sem condições adicionais para verificar o tipo de negócio. O negócio em si foi fechado algumas horas antes. Bem, quando chegaram as 22h00, o Consultor Especialista começou a enviar ordens de fechamento de uma ordem que já estava fechada ... .
Dificilmente você deve se chamar uma fábrica. Se você conseguiu localizar, entender e corrigir tal erro, você está se aproximando do nível de um programador!
Por favor, ajude. Não consigo entender o loop for(), o tempo todo após a atualização, por causa do offset(iMA(NULL,PERIOD_M1,1,1,MODE_SMA,PRICE_OPEN,i)) O indicador vermelho!
Muito obrigado de antemão.
Na minha opinião, a abordagem não é de modo algum lógica. Por que definir o dia da semana? Que diferença faz em que dia é, se a condição deve dizer "não abrir mais do que xxx ordens hoje"?
Parece-me mais lógico contar as ordens abertas hoje e especificar a condição correspondente.
não há data de abertura do pedido no estado.Se você sabe, por favor escreva como fazer isso)
Não entendo como garantir que em um determinado dia não sejam abertos mais de um n-ésimo número de pedidos durante o dia inteiro.
Por favor, ajude. Não consigo entender o loop for(), o tempo todo após a atualização, por causa do offset(iMA(NULL,PERIOD_M1,1,1,MODE_SMA,PRICE_OPEN,i)) O indicador vermelho!
Agradeço antecipadamente.
Os MAs têm TFs diferentes. Você precisa encaixar o cronograma mais alto no TF M1, ou seja, contar os MAs duas vezes com números diferentes de carrapatos. Neste caso, um e o mesmo valor do período mais antigo será adicionado aos diferentes valores do mais jovem.
Se você olhar através de i você recebe, por exemplo, 10 velas do período D1 e 10 M1. Logicamente, algo está errado....
Outra coisa, se o indicador estiver definido no M1, provavelmente funcionará sem rebrisings
os MAs têm TFs diferentes. você tem que encaixar o tempo mais alto no TF M1, ou seja, contar os MAs duas vezes com números diferentes de carrapatos.
Ao passar por i você está agora tomando por exemplo 10 velas do período D1 e 10 M1. Logicamente, algo está errado....
Sim, você está certo, mas minha mente ainda não é suficiente para descobrir como fazer a M1 contar corretamente
Além disso, será necessário sincronizar M1 com um cronograma maior, pois 1 barra de M5 não corresponderá necessariamente a 5 velas de M1, podendo ser 4 ou 1.
Sim, você está certo, mas minha mente ainda não é suficiente para entender como fazer M1 contar corretamente
Tente
tempo da i-ésima barra e colocar o número da barra resultante em vez da i.
Caro novikov433!!! Ensine você a programar, ou escreva um Expert Advisor gratuito ou ambos!! Em troca, ensine-me como as ordens deficitárias são traduzidas em sem perdas. Você pode usar um exemplo simples. Eu dou uma ordem a minha esposa (ordem): compre um balde de batatas de manhã cedo no mercado, e às 10 horas (análise fundamental) o preço sobe - venda. Mas às vezes um caminhão cheio de batatas chega às 10h30 (notícias). E o preço (nas notícias) cai instantaneamente e dura até o final do dia, ou mesmo durante a semana inteira. Eu coloco um Stop Loss - se o preço cai por 10 rublos, eu vendo assim que posso (ao preço de mercado). Como mudar o pedido, para evitar perdas. Se esta variante for interessante - envie-nos seu e-mail.
Tente
o tempo da i-ésima barra e colocar o número da barra resultante em vez da i.
Você já pensou em algo assim?
Obrigado por sua atenção )) Eu sou um otário ... ... ao fechar, tive a condição de fechar o negócio às 22:00 de sexta-feira, sem condições adicionais para verificar o tipo de negócio. O negócio em si foi fechado algumas horas antes. Bem, quando chegaram as 22h00, o Consultor Especialista começou a enviar ordens de fechamento de uma ordem que já estava fechada ... .