Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 876
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
O tamanho da matriz é zero. Não se esqueça do ArrayResize(), ou apenas defina o tamanho certo para a matriz
Olá,
A foto mostra:
Primeira janela Indicador de volume, coloque o índice de fluxo de dinheiro(10) no topo.
Fiz umindicador separado, onde novamente pego Volume, recalculo a mutação com Volume e tento fazer como na primeira janela - 25%, 50%, 75%.
Eu tentei da maneira como o fiz, mas não me pareceu bem.
Caso alguém tenha tido problemas com isso, por favor, compartilhe suas sugestões.
Obrigado
#property indicator_separate_window #property indicator_buffers 2 #property indicator_minimum 0 #property indicator_width1 2 #property indicator_width2 2 #property indicator_color1 DodgerBlue #property indicator_color2 Yellow extern int MAPeriod = 30; double volum[],ma[]; //+------------------------------------------------------------------+ int init(){ int bars_count=WindowBarsPerChart(),volh; int bar=WindowFirstVisibleBar(); volh = Volume[iHighest(Symbol(),0,MODE_VOLUME,bar,0)]; SetIndexBuffer(0,volum); SetIndexBuffer(1,ma); SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexStyle(1,DRAW_LINE); SetLevelValue (0, volh*1.05); SetLevelValue (1, ((volh*1.05)/100)*75.0); SetLevelValue (2, ((volh*1.05)/100)*50.0); SetLevelValue (3, ((volh*1.05)/100)*25.0); return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ /*int start(){ int limit; limit = Bars-IndicatorCounted()-1; for(int i=limit;i>=0;i--){ volum[i] = NormalizeDouble(Volume[i],0); ma[i] = NormalizeDouble(iMAOnArray(volum,0,MAPeriod,0,MODE_SMA,i),0); } return(0); }*/ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { int i=rates_total-prev_calculated-1; if(i<0) i=0; while(i>=0){ if(i<rates_total-1) volum[i] = NormalizeDouble(Volume[i],0); ma[i] = NormalizeDouble(iMAOnArray(volum,0,MAPeriod,0,MODE_SMA,i),0); i--; } return(rates_total); }
Ele estava falando sobre a segunda barra de menos. E o valor médio dos limites. Ele quer gozar de mim, eu acho. Eu diria a ele para ir se foder, você sabe o que eu quero dizer :)
E aoevillive e à artmedia70 um enorme obrigado. Por sua paciência e por seu tempo. Tenho certeza de que não é apenas a minha opinião sobre você. Todos que vêm a esta linha estão pedindo ajuda e obtendo-a principalmente de você. Obrigada.
Olá, caros profissionais, faz muito tempo que não entro em contato com vocês.
A questão é que existe um consultor especializado com 2 muwks e ninguém se preocupou em abrir um pedido.
comércio nulo()
{ double ma_fast=ma(Período_,Shift_,Método_MA_,Apply_to_,0), ma_slow=ma(Período__,Shift__,Método_MA__,Apply_to__,0);
if(sumBO==0 && ma_fast>ma_slow && (!Use_Distance ||| (Use_Distance && ND(ma_fast-ma_slow)>Distance*Pnt))
{
if(sumSO>0 && !ClosePos(OP_SELL)) retornam;
if(MO(OP_BUY,GetLot(),GetComment())==-1) retorna;
if(!ModifyByTicket(T)) retorna;
NumbUp=0; NumbDn=0;
}
senão
e assim por diante...
isto é, se houver um cruzamento da distância, abrir uma ordem
Preciso de um código para encontrar a hora da última travessia ...
então do momento atual até o momento da história, procure uma ordem dentro de um certo período... e abra uma ordem se ela não encontrou uma
explorei o código de indicadores de rastreador para este fim, tudo parece estar claro lá
mas não sei como cronometrar a primeira barra após a travessia das curvas, então é a barra mais à direita
Eu sinto que é necessário um operador forte, mas não posso formulá-lo
Esta não é a maneira de fazer isso. Chame o iCustom para os 3 buffers, escreva cada valor em sua própria variável e depois faça o que quiser com estes valores.
Para as tiras de Bollinger, para a segunda barra, de acordo com o exemplo na ajuda, não é necessário desmarcá-la:
Obrigado.
Mas, devido ao meu analfabetismo, tenho que consultar meu manual o tempo todo e descobri o seguinte: um indicador personalizado é um programa escrito de acordo com o algoritmo do autor. E o tutorial diz que o iCustomretorna o valor do indicador personalizado especificado.
Mas eu não utilizo nenhum indicador personalizado (ou seja, como eu entendo - desenvolvido por mim).
Preciso recuperar os valores do padrão, se assim posso chamá-los, indicadores: Média Móvel, Bandas de Bollinger e Oscilador Estocástico com os parâmetros que especifiquei. É claro que o faço "por intuição" - a primeira coisa que encontrei será aplicada, mas a variante que você sugeriu também não me convém.
Não há solução sem utilizar todos esses amortecedores, arrays e loops? Sou como uma rocha no mar neles - afundo de uma vez.
Olá, caros profissionais, há muito tempo que não os contactava.
A questão é que existe um consultor especializado com 2 muwks e ninguém se preocupou em abrir um pedido.
comércio nulo()
{ double ma_fast=ma(Período_,Shift_,Método_MA_,Apply_to_,0), ma_slow=ma(Período__,Shift__,Método_MA__,Apply_to__,0);
if(sumBO==0 && ma_fast>ma_slow && (!Use_Distance ||| (Use_Distance && ND(ma_fast-ma_slow)>Distance*Pnt))
{
if(sumSO>0 && !ClosePos(OP_SELL)) retornam;
if(MO(OP_BUY,GetLot(),GetComment())==-1) retorna;
if(!ModifyByTicket(T)) retorna;
NumbUp=0; NumbDn=0;
}
senão
e assim por diante...
isto é, se houver um cruzamento da distância, abrir uma ordem
Preciso de um código para encontrar a hora da última travessia ...
então do momento atual até o momento da história, procure uma ordem dentro de um certo período... e abra uma ordem se ela não encontrou uma
explorei o código de indicadores de rastreador para este fim, tudo parece estar claro lá
mas não sei como cronometrar a primeira barra após a travessia das curvas, então é a barra mais à direita
Eu sinto que é necessário um operador forte, mas não posso formulá-lo
Este Expert Advisor não trabalha por interseção. O critério é o seguinte: se o rápido МА for mais alto que o lento por X pips e não houver uma posição aberta, abra-o no mercado.
Para encontrar a travessia, deve-se sempre tomar dois valores - o "fast/slow MA" antes da travessia e o "fast/slow MA" DEPOIS da travessia para descobrir quando eles trocam de lugar, por assim dizer. Em outras palavras
if(FastMA_2<SlowMA_2 && FastMA_1>SlowMA_1) - fast МА cruzou a lenta de baixo para cima entre a 1ª e 2ª barras.
Em um loop infinito, olhe desde a barra zero até a detecção da travessia, será X+1 barra, e você precisa do tempo da barra X, ou seja, a barra mais recente após a travessia.
Obrigado.
Mas, devido ao meu analfabetismo, tenho que escavar o livro de texto o tempo todo e isto é o que eu descobri: um indicador personalizado é um programa..., escrito de acordo com o algoritmo do autor. E o tutorial diz que o iCustomretorna o valor do indicador personalizado especificado.
Mas eu não utilizo nenhum indicador personalizado (ou seja, como eu entendo - desenvolvido por mim).
Preciso recuperar os valores do padrão, se assim posso chamá-los, indicadores: Média Móvel, Bandas de Bollinger e Oscilador Estocástico com os parâmetros que especifiquei. É claro que o faço "por intuição" - a primeira coisa que encontrei será aplicada. Mas sua variante sugerida não me parece tão adequada também.
Não há solução sem utilizar todos esses amortecedores, arrays e loops? Sou como uma rocha no mar neles - afundo de uma vez.
Olá, caros profissionais, há muito tempo que não os contactava.
A questão é que existe um consultor especializado com 2 muwks e ninguém se preocupou em abrir um pedido.
comércio nulo()
{ double ma_fast=ma(Período_,Shift_,Método_MA_,Apply_to_,0), ma_slow=ma(Período__,Shift__,Método_MA__,Apply_to__,0);
if(sumBO==0 && ma_fast>ma_slow && (!Use_Distance ||| (Use_Distance && ND(ma_fast-ma_slow)>Distance*Pnt))
{
if(sumSO>0 && !ClosePos(OP_SELL)) retornam;
if(MO(OP_BUY,GetLot(),GetComment())==-1) retorna;
if(!ModifyByTicket(T)) retorna;
NumbUp=0; NumbDn=0;
}
senão
e assim por diante...
isto é, se houver um cruzamento da distância, abrir uma ordem
Preciso de um código para encontrar a hora da última travessia ...
então do momento atual até o momento da história, procure uma ordem dentro de um certo período... e abra uma ordem se ela não encontrou uma
explorei o código de indicadores de rastreador para este fim, tudo parece estar claro lá
mas não sei como cronometrar a primeira barra após a travessia das curvas, então é a barra mais à direita
Eu sinto que é necessário um operador forte, mas não posso formulá-lo