[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 103
Não, ela não deve nada a ninguém. Há uma diferença entre um demo-real e um testador. Por exemplo, o testador nunca mostrará um erro ao abrir pedidos, se todos os parâmetros OrderSend() estiverem corretos. Mas um servidor comercial, ao contrário, ele o fará.
É por isso que devemos modificar os programas após o testador e depois executá-los na demonstração, para que eles possam lidar adequadamente com situações excepcionais, que não ocorrem no testador.
Obrigado!!! Esta é uma informação muito útil para mim))
Não vai funcionar aqui, porque na próxima linha na mesma barra esta primeira figura formada será iniciada como a segunda também... E eu preciso separá-los... separado
para então comparar os baixos - se longos e os altos - se curtos.
......
if (AO3 < 0 && AO3 > AO2 && AO2<0 && AO2 < AO1 && AO1 < 0 && fl1==false && fl2==false) {a1 = AO2; fl1=true;Time_Figure1=TimeCurrent(); Print ("образование первого пика",DoubleToStr(a1, 6),"Время: ",Time_Figure1);}// определение наличия 1-го пика, флаг установлен
Print ("Образование первого пика",DoubleToStr(a1, 6),"Время1: ",Time_Figure1);
sleep (2000);
if (AO3<0 && AO3>AO2 && AO2<0 && AO2<AO1 && AO1<0 && fl1==true && fl2==false && TimeCurrent() > Time_Figure1) // определение наличия 2-го пика, флаги установлены
{
a11 = AO2; fl1=true; fl2=true; Print ("Образование второго пика", DoubleToStr (a11,6), "Время2: ",Time_Figure2);
.....
Não vai funcionar aqui, porque na próxima linha na mesma barra esta primeira figura formada será iniciada como a segunda também... E eu preciso separá-los... separado
para posterior comparação de baixas - se longas e altas - se curtas.
Não é assim. Se você tiver a barra de sinais AO primeiro, então olhe a partir dela e procure pelo resto no fundo da história. Quando você abre uma posição, lembre-se da hora da abertura do bar e não abra novamente nele. Assim que a próxima barra AO for formada, comece a procurar um padrão novamente.
artmedia70: Não é assim. Se você tem a primeira barra de sinal de AO, então, a partir dela e procure as outras a fundo na história. Quando você abrir uma posição, lembre-se da hora de abertura do bar e não o abra novamente. Assim que a próxima barra AO for formada, comece a procurar um padrão novamente.
Você pode elaborar - não preciso procurar a fundo na história...
Basta-me determinar no presente se veio um pico, que é a Fig.1, e se depois de algumas barras como na figura veio outro pico, então eu posso compará-las e tomar uma decisão...
A questão é que ambos os picos da primeira e da segunda figura são os mesmos, e eu não posso (mesmo usando bandeiras para distinguir uma figura de outra)... Estou entediado com o quê...
P.S. Os espigões não necessariamente seguem um após o outro, podem passar por várias barras iguais, etc. Eles podem ser diferentes - o principal é que o princípio de sua construção é o mesmo.
O principal é separar um do outro para uma comparação posterior.
Em geral, é possível interromper a EA em um determinado lugar no código antes da próxima barra ser formada, após alguns comandos serem executados.
Sim, há. Você armazena o valor atual do Tempo[0] em uma variável estática e o compara com cada novo tick. Se não mudou, nós voltamos(0). Se mudou, estamos lidando com um novo bar. Lembre-se da hora da nova barra, ou seja, o tempo[0] e comece seus próprios cálculos.
Reshetov: Sim, é verdade. Você armazena o valor atual do Tempo[0] em uma variável estática e compara com cada novo tick. Se não tiver mudado, você sai com retorno(0). Se mudou, estamos tratando de um novo bar. Lembre-se da hora da nova barra, ou seja, o tempo[0] e comece seus próprios cálculos.
Já o conheço há muito tempo... :-)) Mais de um livro didático... Obrigado...
Estou comparando agora, acho que estou no caminho certo, mas até agora não está funcionando como deveria...
double AO1 = iAO(Symbol(), signal_period, 1);
double AO2 = iAO(Symbol(), signal_period, 2);
double AO3 = iAO(Symbol(), signal_period, 3);
// Расчет переменных для доливки 2-а пикаif (AO3 < 0 && AO3 > AO2 && AO2<0 && AO2 < AO1 && AO1 < 0 && fl1==false && fl2==false) {a1 = AO2; fl1=true;Time_Figure1=Time[0]; Print ("Oбразование первого пика",DoubleToStr(a1, 6),"Время: ",Time_Figure1);}// определение наличия 1-го пика, флаг установленPrint ("Образование первого пика",DoubleToStr(a1, 6),"Время1: ",Time_Figure1);
if (Time_Figure1<Time[0] && Time_Figure1!=0) // условие наличия первого пика...
{
if (AO3<0 && AO3>AO2 && AO2<0 && AO2<AO1 && AO1<0 && fl1==true && fl2==false ) // определение наличия 2-го пика, флаги установлены
{
a11 = AO2; fl1=true; fl2=true; Time_Figure2=Time[0]; Print ("Образование второго пика", DoubleToStr (a11,6), "Время2: ",Time_Figure2);
if (a1<a11 && High [0] > High [1])
{ signal_buy = true; a1=a11; fl1=true;fl2=false; Time_Figure1=Time[0];} // активируем бай и устанавливаем сигнал на бай и записываем параметры как первого пика else { a1=a11; fl1=true;fl2=false;Time_Figure1=Time[0];} // просто запоминаем новый минимум - "первый" сигнал
}
}
if (AO2>0 || High [0] < High [1]) {fl1=false; fl2=false; Time_Figure1=0;}// если какой - либо столбец гистограммы пересекает 0-ю линию между сигналами 2-а пика// то сигнал считается недействительным. Cбрасываем флаги 1-го и 2-го пика вниз,if (Mas_Tip[0]!=0 && signal_buy == true ) return(10); // при доливке и сигнале к покупке открываемся с рынка
signal_buy = false; // сбрасываем сигнал к покупке
Você me sugeriu corretamente o uso do Tempo[x] - tentando implementar...
Não, ela não deve nada a ninguém. Há uma diferença entre um demo-real e um testador. Por exemplo, o testador nunca mostrará um erro ao abrir pedidos, se todos os parâmetros OrderSend() estiverem corretos. Mas um servidor comercial, ao contrário, ele o fará.
É por isso que devemos modificar os programas após o testador e depois executá-los na demonstração, para que eles possam lidar adequadamente com situações excepcionais, que não ocorrem no testador.
Esta é uma informação muito útil para mim))
Use o tempo[x] tempo de barra.
Não vai funcionar aqui, porque na próxima linha na mesma barra esta primeira figura formada será iniciada como a segunda também... E eu preciso separá-los... separado
para então comparar os baixos - se longos e os altos - se curtos.
Se não é difícil escrever um modelo, ainda não estou pensando direito)
Obrigado por sua atenção.
Não vai funcionar aqui, porque na próxima linha na mesma barra esta primeira figura formada será iniciada como a segunda também... E eu preciso separá-los... separado
para posterior comparação de baixas - se longas e altas - se curtas.
Não é assim. Se você tem a primeira barra de sinal de AO, então, a partir dela e procure as outras a fundo na história. Quando você abrir uma posição, lembre-se da hora de abertura do bar e não o abra novamente. Assim que a próxima barra AO for formada, comece a procurar um padrão novamente.
Você pode elaborar - não preciso procurar a fundo na história...
Basta-me determinar no presente se veio um pico, que é a Fig.1, e se depois de algumas barras como na figura veio outro pico, então eu posso compará-las e tomar uma decisão...
A questão é que ambos os picos da primeira e da segunda figura são os mesmos, e eu não posso (mesmo usando bandeiras para distinguir uma figura de outra)... Estou entediado com o quê...
P.S. Os espigões não necessariamente seguem um após o outro, podem passar por várias barras iguais, etc. Eles podem ser diferentes - o principal é que o princípio de sua construção é o mesmo.
O principal é separar um do outro para uma comparação posterior.
Use o tempo[x] tempo de barra.
Em geral, é possível interromper a EA em um determinado ponto do código antes que a próxima barra seja formada após alguns comandos serem executados.
Em geral, é possível interromper a EA em um determinado lugar no código antes da próxima barra ser formada, após alguns comandos serem executados.
eddy:
como substituir corretamente esta função pelo iLowest?
minimum=Low[iLowest (NULL, 0, MODE_LOW, KPeriod, 0)] - isto é correto?
Sim, é verdade. Você armazena o valor atual do Tempo[0] em uma variável estática e compara com cada novo tick. Se não tiver mudado, você sai com retorno(0). Se mudou, estamos tratando de um novo bar. Lembre-se da hora da nova barra, ou seja, o tempo[0] e comece seus próprios cálculos.
Já o conheço há muito tempo... :-)) Mais de um livro didático... Obrigado...
Estou comparando agora, acho que estou no caminho certo, mas até agora não está funcionando como deveria...
Você me sugeriu corretamente o uso do Tempo[x] - tentando implementar...