Selecciona uma encomenda para continuar a trabalhar com ela. Retorna verdadeiro após a conclusão bem sucedida da função. Retorna falso se a função falhar. É necessário chamar a funçãoGetLastError() para obter informações sobre o erro.
AOrderSelect( ulong ticket// Bilhete a encomenda );
Parâmetros
bilhete
[O bilhete da encomenda.
Como é atribuído este bilhete? Onde posso obtê-lo? Ou como é que o monto?
Na ajuda que diz
OrderGetTicket
Devolve o bilhete da ordem correspondente e selecciona automaticamente a ordem para posterior manipulação utilizando funções. Temos de passar por todas as encomendas por índice e obter um bilhete, se necessário. Embora esta função também seleccione a ordem em si. O bilhete é estabelecido pelo corretor, e não o podemos alterar.
ulongOrderGetTicket(
int index // номер в списке ордеров
);
Escrevi uma função, que deve desenhar "fuso horário não comercial" no gráfico todos os dias. Mas aqui está um problema - quando o inicio, o módulo OnInit, desenha como deve ser, mas quando o inicio no módulo OnTimer por alguma razão desconhecida a data variável mantém valores que foram atribuídos no módulo OnInit.
Pergunta: Porquê?
intOnInit()
{
EventSetTimer(1);
MqlDateTime date;
TimeLocal(date);
offtimeCreate(date); // Рисуем на графике заполненный прямоугольник (не торговая зона) с 21:00 до 23:59 в день указанный в переменной datereturn(INIT_SUCCEEDED);
}
...
void onTimer()
{
MqlDateTime date;
TimeLocal(date);
if (date.hour==9 && date.min==0 && date.sec==0) offtimeCreate(date); // Каждое утро, в 9:00, рисуем новую "не торговую зону" для дня указанного в переменной date
}
...
Escrevi uma função que deve desenhar um "fuso horário não comercial" num gráfico todos os dias. Mas há um problema - quando executado no módulo OnInit desenha a data como deve ser, mas quando executado no módulo OnTimer por alguma razão desconhecida a variável data mantém os valores que foram atribuídos no módulo OnInit.
Porque A) Vejo visualmente, o "fuso horário" não é desenhado hoje das 21:00 às 23:59, mas de ontem 21:00 a hoje 23:59
B) Se eu abrir as propriedades do objecto gráfico (rectângulo sombreado - "fuso horário"), vejo que a primeira variável não mudou, ou seja, tem o mesmo valor das 21:00 de ontem
INGFX: Sim OnTimer, cometeu um erro ao reescrever aqui ... o próprio código está correcto
Teria verificado o seu código. Cansado de coser os seus pedaços e peças - por isso, aqui, verifique o código. No OnTimer substitua a sua hora local e compare as impressões na inicialização e no temporizador:
//+------------------------------------------------------------------+//| TestEA.mq5 |//| Copyright 2015, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2015, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
EventSetTimer(1);
MqlDateTime date;
TimeLocal(date);
offtimeCreate(date); // Рисуем на графике заполненный прямоугольник (не торговая зона) с 21:00 до 23:59 в день указанный в переменной datereturn(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+voidOnTimer()
{
MqlDateTime date;
TimeLocal(date);
if(date.hour==22 && date.min==33 && date.sec==00)
offtimeCreate(date); // Каждое утро, в 9:00, рисуем новую "не торговую зону" для дня указанного в переменной date
}
//+------------------------------------------------------------------+/*void offtimeCreate(MqlDateTime &struct_date)
{
string text="";
text=IntegerToString(struct_date.hour)+":"+
IntegerToString(struct_date.min)+":"+
IntegerToString(struct_date.sec);
Comment(text);
//ChartRedraw();
}*///+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+bool offtimeCreate(MqlDateTime &stm)
{
color clr=Black;
datetime tm1,tm2;
tm1 = StringToTime((string)stm.year+"."+(string)stm.mon+"."+(string)stm.day+" 21:00");
tm2 = StringToTime((string)stm.year+"."+(string)stm.mon+"."+(string)stm.day+" 23:59");
Print(tm1+" "+tm2);
//RectangleCreate(0,"offtime",0,tm1,0,tm2,200,clr); // chrart_id,object_name,sub_window,time1,price1,time2,price2,colorreturn(true);
}
//+------------------------------------------------------------------+
Há alguma forma de verificar se os guiões de abertura funcionam no fim-de-semana?
Apenas o indicador lida com todas as carraças em OnCalculate(). Sem qualquer salto.
Uh, não. E ele falha. Mas menos do que outros. Mas salta.
Isso é bom, obrigado.
Outra questão:
OrderSelect
Selecciona uma encomenda para continuar a trabalhar com ela. Retorna verdadeiro após a conclusão bem sucedida da função. Retorna falso se a função falhar. É necessário chamar a funçãoGetLastError() para obter informações sobre o erro.
AOrderSelect(
ulong ticket// Bilhete a encomenda
);
Parâmetros
bilhete
[O bilhete da encomenda.
Como é atribuído este bilhete? Onde posso obtê-lo? Ou como é que o monto?
OrderGetTicket
Devolve o bilhete da ordem correspondente e selecciona automaticamente a ordem para posterior manipulação utilizando funções. Temos de passar por todas as encomendas por índice e obter um bilhete, se necessário. Embora esta função também seleccione a ordem em si. O bilhete é estabelecido pelo corretor, e não o podemos alterar.
Olá a todos!
Escrevi uma função, que deve desenhar "fuso horário não comercial" no gráfico todos os dias.
Mas aqui está um problema - quando o inicio, o módulo OnInit, desenha como deve ser, mas quando o inicio no módulo OnTimer por alguma razão desconhecida a data variável mantém valores que foram atribuídos no módulo OnInit.
Pergunta: Porquê?
Olá a todos!
Escrevi uma função que deve desenhar um "fuso horário não comercial" num gráfico todos os dias.
Mas há um problema - quando executado no módulo OnInit desenha a data como deve ser, mas quando executado no módulo OnTimer por alguma razão desconhecida a variável data mantém os valores que foram atribuídos no módulo OnInit.
Pergunta: Porquê?
Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos
Insectos, insectos, perguntas
Karputov Vladimir, 2016.01.09 20:51
O que o leva a pensar que na data variável do temporizador é passado o valor previamente definido no OnInit()?
É preciso ver a sua função que desenha a zona.
Concluído:
Correctamente seria OnTimer, e não OnTimer.
Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial
Insectos, insectos, perguntas
INGFX, 2016.01.09 21:20
Porque A) Vejo visualmente, o "fuso horário" não é desenhado hoje das 21:00 às 23:59, mas de ontem 21:00 a hoje 23:59
B) Se eu abrir as propriedades do objecto gráfico (rectângulo sombreado - "fuso horário"), vejo que a primeira variável não mudou, ou seja, tem o mesmo valor das 21:00 de ontem
Sim OnTimer, cometeu um erro ao reescrever aqui ... o próprio código está correcto
Teria verificado o seu código. Cansado de coser os seus pedaços e peças - por isso, aqui, verifique o código. No OnTimer substitua a sua hora local e compare as impressões na inicialização e no temporizador:
Teria verificado o seu código.
Vladimir, obrigado pela sua paciência e ajuda!
Realmente cometeu um erro no código ...
Vou ter mais cuidado a partir de agora.