voidOnStart()
{
int Target=6; //Количество тайм-фреймовint Counter_UP=0; //Счетчик нахождения цены над МАint Counter_DOWN=0;
int MA = 200; //Период МАdouble bufer_MA[]; //Буфер для хендлаENUM_TIMEFRAMES frame1[10]; //Битная маска тайм-фреймов//___________________int битная маска ENUM Массив таймфреймов__________________________________________
frame1[1]=1;
frame1[2]=5;
frame1[3]=15;
frame1[4]=30;
frame1[5]=16385;
frame1[6]=16388;
frame1[7]=16408;
frame1[8]=32769;
frame1[9]=49153;
//____________________________________________________________________________________________________________int KollSymbols = SymbolsTotal(true); //Колл. символов в маркет вотчAlert("Колл.Инстр = ",KollSymbols);
//---int MA200; //Переменная для хендлаfor(int i=0; i<KollSymbols; i++) //Перебераем все символы из маркет вотч
{
string symbol = SymbolName(i,true); //Выбираем имя символа из маркет вотч// Alert("symbol = ",symbol,"i= ",i);for(int I=1; I<=Target; I++) //Перебераем таймфреймы
{
MA200 = iMA(symbol,frame1[I],MA,0,MODE_EMA,PRICE_MEDIAN); //хендл на выбранном таймеCopyBuffer(MA200,0,TimeCurrent(),5,bufer_MA); // заполнение масива bufer_MA хендлом MA200 выбранного таймаArraySetAsSeries(bufer_MA,true); //Разворачиваем массив как в тайм-серии//Alert("Символ - ",symbol,"i= ",i);// Alert("Simbol = ",symbol," bufer_MA[1] = ",bufer_MA[1]);if(iClose(symbol,frame1[I],1) > bufer_MA[1]) //Если цена 1 баре, на выбранном символе и тайме, БОЛЬШЕ цены скользяхи на 1 баре
{
//Alert("iClose= ",iClose(symbol,frame1[I],1), " bufer_MA[1]= ",bufer_MA[1]);
Counter_UP++;
if(Counter_UP==Target)
Alert("Инструмент для наблюдения в покупки - ",symbol);
ArrayFree(bufer_MA); //Очистка буфера индикатора
}
else
{
ArrayFree(bufer_MA); //Очистка буфера индикатора
}
IndicatorRelease(MA200); //Удаление хендла
}
Counter_UP=0;
Counter_DOWN=0;
}
}
//+------------------------------------------------------------------+//+------------------------------------------------------------------+
Funciona bem. E a lista de 22 instrumentos. Demora cerca de 5 minutos. É estranho, no entanto. Passa a maior parte do seu tempo a escrever alças para a matriz. Resultados do perfil
Pergunta: Porque é tão demorado copiar 5 valores de um cabo para uma matriz, enquanto que a cópia é feita 132 vezes para 22 instrumentos da lista, ou seja, para 273 instrumentos eu precisaria de copiar 1632 vezes, e com o histórico de carga para todos os instrumentos no disco rígido.
funciona bem. E a lista de 22 ferramentas leva cerca de 5 minutos a processar. Isto é estranho, no entanto. Passa a maior parte do seu tempo a escrever o cabo para a matriz. Resultado do perfil
Pergunta: Porque é tão demorado copiar 5 valores de um cabo para uma matriz enquanto a cópia é feita 132 vezes para 22 ferramentas da lista, ou seja, para 273 ferramentas eu precisaria de copiar 1632 vezes, além disso, com o histórico de carregamento de todas as ferramentas para o meu disco rígido.
Se não estou enganado.
Parece funcionar normalmente, se as citações tiverem sido descarregadas, não abranda. O primeiro arranque é muito longo, aparentemente descarrega as citações.
//+------------------------------------------------------------------+voidOnStart()
{
int Target = 6; //Количество тайм-фреймовint Counter_UP = 0; //Счетчик нахождения цены над МАint Counter_DOWN = 0;
int MA = 200; //Период МАdouble bufer_MA[]; //Буфер для хендлаint MA200[][9]; //Переменная для хендлаstring symbol[];
ENUM_TIMEFRAMES frame1[9]; //Битная маска тайм-фреймов//___________________int битная маска ENUM Массив таймфреймов__________________________________________
frame1[0] = 1;
frame1[1] = 5;
frame1[2] = 15;
frame1[3] = 30;
frame1[4] = 16385;
frame1[5] = 16388;
frame1[6] = 16408;
frame1[7] = 32769;
frame1[8] = 49153;
//____________________________________________________________________________________________________________int KollSymbols = SymbolsTotal(true); //Колл. символов в маркет вотчPrint("Колл.Инстр = ", KollSymbols);
int res = 0;
for(int i = 0; i < KollSymbols; i++)
{
for(int I = 0; I < 9; I++) //Перебераем таймфреймы
{
ArrayResize(MA200, i + 1);
ArrayResize(symbol, i + 1);
symbol[i] = SymbolName(i, true); //Выбираем имя символа из маркет вотч
MA200[i][I] = iMA(symbol[i], frame1[I], MA, 0, MODE_EMA, PRICE_MEDIAN); //хендл на выбранном таймеif(MA200[i][I] == INVALID_HANDLE)
PrintFormat("Инвалид хэндл, символ %s, тайм %d", symbol[i], frame1[I]);
res++;
}
}
Print("Создано хэндлов = " + (string)res);
//---for(int i = 0; i < KollSymbols; i++)
{
for(int I = 0; I < 9; I++) //Перебераем таймфреймы
{
int size = CopyBuffer(MA200[i][I], 0, 1, 1, bufer_MA); // заполнение масива bufer_MA хендлом MA200 выбранного таймаPrintFormat("Скопировано %d, символ %s, тайм %d", size, symbol[i], frame1[I]);
if(size > 0)
if(iClose(symbol[i], frame1[I], 1) > bufer_MA[0]) //Если цена 1 баре, на выбранном символе и тайме, БОЛЬШЕ цены скользяхи на 1 баре
{
Counter_UP++;
}
}
}
Print("Counter_UP = " + (string)Counter_UP);
}
//+------------------------------------------------------------------+
O objectivo do guião é percorrer cada instrumento da Market Watch em intervalos de tempo de 1min a 4H
Se eu fizesse tal coisa, criaria uma matriz e armazenaria dados passados, actualizando dados actuais. Isto evitaria ciclos pesados e CopyBuffer. Tudo voaria.
Parece funcionar bem, se as citações forem descarregadas, não abranda. O primeiro arranque leva muito tempo, acho que descarrega as citações.
Obrigado pelo seu feedback e pela sua versão do programa, vou tentar)! Só me pergunto porque não apago as pegas antes de terminar o programa ou elas serão apagadas automaticamente após o programa estar terminado, mas a memória não é libertada de acordo com o gestor de tarefas.
Se eu fizesse tal coisa, criaria uma matriz e armazenaria dados passados, actualizando dados actuais. Isto evitaria laços pesados e CopyBuffer. Tudo voaria.
Obrigado pelo seu feedback e pela sua versão, vou experimentar)! Não entendo apenas porque não se apagam as pegas antes de terminar o programa? Ou são automaticamente apagadas no final do programa, embora a RAM não seja libertada, a julgar pelo gestor de tarefas.
Li algures que as manipulações dos indicadores são automaticamente apagadas após algum intervalo de tempo após o fim do guião. Mas não é exacto.
Saudações! Poderia aconselhar como, depois detestar uma EA em MQL5, pode emitir alguma das minhas estatísticas numa janela popup quando passar o rato por cima das setas?
Pode dizer-me por favor porque é que a função OrderSend em moeda criptográfica não funciona ao testar com o corretor da AMarkets. Não consegui encontrar qualquer proibição de consultores comerciais de criptografia pelos regulamentos. Ou talvez eu tenha erros no meu código? GetLastError dá erro 4756
Funciona bem. E a lista de 22 instrumentos.
Demora cerca de 5 minutos. É estranho, no entanto. Passa a maior parte do seu tempo a escrever alças para a matriz. Resultados do perfil 
Pergunta: Porque é tão demorado copiar 5 valores de um cabo para uma matriz, enquanto que a cópia é feita 132 vezes para 22 instrumentos da lista, ou seja, para 273 instrumentos eu precisaria de copiar 1632 vezes, e com o histórico de carga para todos os instrumentos no disco rígido.
sobre a criação e eliminação de pegas,
funciona, estou interessado na forma correcta, espero que os criadores me digam.
É isso mesmo que estou a fazer, olha para o código acima, também há perguntas))
Assim, verificou-se que o guião
funciona bem. E a lista de 22 ferramentas leva cerca de 5 minutos a processar. Isto é estranho, no entanto. Passa a maior parte do seu tempo a escrever o cabo para a matriz. Resultado do perfil
Pergunta: Porque é tão demorado copiar 5 valores de um cabo para uma matriz enquanto a cópia é feita 132 vezes para 22 ferramentas da lista, ou seja, para 273 ferramentas eu precisaria de copiar 1632 vezes, além disso, com o histórico de carregamento de todas as ferramentas para o meu disco rígido.
Se não estou enganado.
Parece funcionar normalmente, se as citações tiverem sido descarregadas, não abranda. O primeiro arranque é muito longo, aparentemente descarrega as citações.
O objectivo do guião é percorrer cada instrumento da Market Watch em intervalos de tempo de 1min a 4H
Se eu fizesse tal coisa, criaria uma matriz e armazenaria dados passados, actualizando dados actuais. Isto evitaria ciclos pesados e CopyBuffer. Tudo voaria.
Se não estou enganado.
Parece funcionar bem, se as citações forem descarregadas, não abranda. O primeiro arranque leva muito tempo, acho que descarrega as citações.
Obrigado pelo seu feedback e pela sua versão do programa, vou tentar)! Só me pergunto porque não apago as pegas antes de terminar o programa ou elas serão apagadas automaticamente após o programa estar terminado, mas a memória não é libertada de acordo com o gestor de tarefas.
Se eu fizesse tal coisa, criaria uma matriz e armazenaria dados passados, actualizando dados actuais. Isto evitaria laços pesados e CopyBuffer. Tudo voaria.
Obrigado! Também vou pensar no assunto)
Obrigado pelo seu feedback e pela sua versão, vou experimentar)! Não entendo apenas porque não se apagam as pegas antes de terminar o programa? Ou são automaticamente apagadas no final do programa, embora a RAM não seja libertada, a julgar pelo gestor de tarefas.
Li algures que as manipulações dos indicadores são automaticamente apagadas após algum intervalo de tempo após o fim do guião. Mas não é exacto.
Olá
o terminal tem uma ferramenta de regressão linear
há guiões que desenham o mesmo canal com objectos gráficos
Mas apenas a linha central é desenhada correctamente, as linhas de desvio são desenhadas a uma distância incorrecta da linha central
avisar se alguém conhece a fórmula correcta para calcular o desvio, deve ser como no terminal
ou talvez haja uma solução já feita
OBRIGADO
Olá!
Pode dizer-me por favor porque é que a função OrderSend em moeda criptográfica não funciona ao testar com o corretor da AMarkets. Não consegui encontrar qualquer proibição de consultores comerciais de criptografia pelos regulamentos. Ou talvez eu tenha erros no meu código? GetLastError dá erro 4756