[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 450

 
remobal писал(а) >>

O que há de tão engraçado nisso, por favor explique?

Tudo o que você precisa fazer é ler alguma literatura popular e a pergunta vai embora. Sua pergunta significa que você quer tudo em uma bandeja de prata.

 
Vinin >>:

Достаточно почитать популярную литературу и вопрос сам собой закроется. Ваш вопрос означает что Вам нужно все подать на блюдечке с голубой каемочкой.

Desculpe-me, por favor, eu li literatura popular, mas infelizmente eu também não encontrei a resposta para esta pergunta lá.

Importa-se de dar pelo menos o título do livro e o nome do autor.

Muito obrigado de antemão!

 
Boa tarde, você poderia me dizer se eu precisodo Oscilador Awesome em uma colher, seus parâmetros são constantes e ele não precisa ser prescrito como um MA?
 
Deve ser declarado e onde deve ser escrito? E como deve ser referido no EA? Como AO ou Oscilador Fantástico?
 
Farina >>:
Нужно ли его объявлять и в каком месте прописывать? и как на него ссылаться в советнике? как AO или Awesome Oscillator ?
duplo iAO( símbolo de corda, int timeeframe, int shift)
Cálculo do oscilador Awesome.
Parâmetros:
símbolo - Símbolo nome do símbolo, em cujos dados o indicador será calculado. NULL significa símbolo atual.
cronograma - Período. Pode ser um dos períodos do gráfico. 0 significa o período do gráfico atual.
turno - Índice do valor obtido do buffer de indicadores (deslocamento relativo à barra atual pelo número especificado de períodos de retorno).
Exemplo:
 double val=iAO(NULL, 0, 2);
 
obrigado)
 

Boa tarde, amigos.

Confuso no código, por favor, informe o que precisa ser corrigido.


Eu encontrei o indicador LeManTrend neste fórum.

Quero modificá-lo um pouco - adicionar médias móveis suaves em duas linhas no indicador.

Preparo arrays ma[] e ma2[] para este fim.


Mas quando acrescento este indicador ao gráfico, "nada é desenhado".

qual é o problema?


//----

string Indicator_Name = "ind1";

int Objs = 0;

//----

#property indicator_separate_window

#property indicator_buffers 4

//----

int Bars.Count = 0;


extern int Min = 13;

extern int Midle = 21;

extern int Max = 34;

extern int PeriodEMA = 3;

//---- Буферы

double ExtMapBuffer1[];

double ExtMapBuffer2[];

double TempBuffer1[];

double TempBuffer2[];

double ma[];

double ma2[];

int method_ma = 0;


//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators

IndicatorShortName(Indicator_Name);

int cur = 0;

int st = 23;

//-------------------------------------------

int width = 2;


SetIndexStyle(0, DRAW_LINE, DRAW_LINE, width, Yellow);

SetIndexBuffer(0, ExtMapBuffer1);

SetIndexStyle(1, DRAW_LINE, DRAW_LINE, 2, Blue);

SetIndexBuffer(1, ExtMapBuffer2);

SetIndexBuffer(2, ma);

SetIndexStyle(2, DRAW_LINE, DRAW_LINE, 1, Red);

SetIndexBuffer(3, ma2);

SetIndexStyle(3, DRAW_LINE, DRAW_LINE, 1, Teal);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----


//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{


int limit;

if (IndicatorCounted()<0) return(-1);

limit=Bars-IndicatorCounted();

if (Bars.Count>0 && limit>Bars.Count)

limit=Bars.Count;

int i = limit;

//----

while(i >= 0)

{

double High1 = iHigh(NULL, 0, iHighest(NULL, 0, MODE_HIGH, Min,i+1));

double High2 = iHigh(NULL, 0, iHighest(NULL, 0, MODE_HIGH, Midle,i+1));

double High3 = iHigh(NULL, 0, iHighest(NULL, 0, MODE_HIGH, Max,i+1));

TempBuffer1[i] = ((High[i]-High1)+(High[i]-High2)+(High[i]-High3));

double Low1 = iLow(NULL, 0, iLowest(NULL, 0, MODE_LOW, Min, i+1));

double Low2 = iLow(NULL, 0, iLowest(NULL, 0, MODE_LOW, Midle, i+1));

double Low3 = iLow(NULL, 0, iLowest(NULL, 0, MODE_LOW, Max, i+1));

TempBuffer2[i] = ((Low1-Low[i])+(Low2-Low[i])+(Low3-Low[i]));

i--;

}

//---- основной цикл

for( i = 0; i < limit; i++)

{

if (PeriodEMA > 0 )

{

ExtMapBuffer1[i] = -iMAOnArray(TempBuffer1,Bars,PeriodEMA,0,MODE_EMA,i);

ExtMapBuffer2[i] = -iMAOnArray(TempBuffer2,Bars,PeriodEMA,0,MODE_EMA,i);

}

else

{

ExtMapBuffer1[i] = TempBuffer1[i];

ExtMapBuffer2[i] = TempBuffer2[i];

}

}


//====================================================================


//--------------------------------------------------------------------


//элементы скользящих средних

for(i = 0; i < limit; i++)

{

ma[i]=iMAOnArray(ExtMapBuffer1,0,8,0,method_ma,i);

ma2[i]=iMAOnArray(ExtMapBuffer2,0,8,0,method_ma,i);

}


//====================================================================

//----

return(0);

}




Em anexo está o indicador original LeManTrend


Arquivos anexados:
 

Rapazes, porque é que dá um erro de proximidade e em dois terminais diferentes.

Erro de ordemFechar 4107

: preço inválido 1,48566000 para a função OrderClose

Todas as três variantes dão o mesmo erro: qual delas é mais correta?

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3, Violet);
OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_BID),3,Violet);

 
T-G писал(а) >>

Rapazes, porque é que dá um erro de proximidade e em dois terminais diferentes.

Erro de ordemFechar 4107

: preço inválido 1,48566000 para a função OrderClose

A propósito, qual das três opções é a correta?

Acho que tenho que pré-selecionar o pedido.

 
T-G >>:

Ребята, ну почему дает ошибку закрытия, при чем на двух разных терминалах..

: OrderClose error 4107

: invalid price 1.48566000 for OrderClose function

причем дают одинаковую ошибку все три варианта: и кстати какой из них наиболее правильный?

A ordem é pré-selecionada? Porque todas estas funções "OrderTicket(),OrderLots(),OrderClosePrice()" só funcionam quando a ordem é selecionada por OrderSelect().