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
Qualquer pessoa que goste de minha solução, escreva-me pessoalmente. Eu vou refiná-lo e entregá-lo.
Boa sorte a todos.
Um ciclo de símbolos, verificando a abertura de novas barras quando chega uma cotação e assim por diante pode ser facilmente adicionado à minha solução. E o que o OOP tem a ver com isso?
Você escolheu um exemplo errado. Pense em outra coisa a seu bel-prazer.
E você o faz. Dado que os caracteres podem mudar - afinal de contas, é verdade quando se lê caracteres.
Faça-o. Uma vez que os caracteres podem mudar - porque quando você lê os caracteres é verdade.
Bem, e se eu fizer? O que você diz então? Vou lhe contar um segredo: para mim, este tipo de tarefa é uma brincadeira total de criança. Você realmente acha que eu não posso fazer isso? Isso é simplesmente ingênuo...
Bem, e se eu fizer? O que você diz então? Vou lhe contar um segredo: para mim, este tipo de tarefa é uma brincadeira total de criança. Você realmente acha que eu não posso fazer isso? Isso é simplesmente ingênuo...
Bem, faça-o já.
Artyom não respondeu à pergunta, mas a pergunta é esta: escreva em estilo processual, para que funcione corretamente
Sem dúvida. Hedge para salvar a comparação de operações de cordas, bem, se o cliente é um maníaco e irá negociar em todos os símbolos simultaneamente.
Mas parece que não há outro lugar para salvar operações e memória - tudo é mínimo.
void OnTimer(){
Alert(Fn_new_bar("EURUSD", PERIOD_D1)); }
//+------------------------------------------------------------------+
uint Sp_Adler32(string line){
ulong s1 = 1;
ulong s2 = 0;
uint buflength=StringLen(line);
uchar char_array[];
ArrayResize(char_array, buflength,0);
StringToCharArray(line, char_array, 0, -1, CP_ACP);
for (uint n=0; n<buflength; n++){
s1 = (s1 + char_array[n]) % 65521;
s2 = (s2 + s1) % 65521;}
return ((s2 << 16) + s1);}
//+------------------------------------------------------------------+
bool Fn_new_bar(string symb, ENUM_TIMEFRAMES tf){
static datetime st_time[];
static uint st_id[];
//---- set
datetime new_time = iTime(symb, tf, 0); if(new_time==0) return(false);
uint new_id = Sp_Adler32(StringConcatenate(symb,EnumToString(tf)));
datetime old_time = 0;
uint old_id = 0;
//---- find
int size = ArraySize(st_time);
for(int i=0; i<size; i++){
if(st_id[i]!=new_id) continue;
old_id = st_id [i];
old_time = st_time[i];
break;}
//----add new element
if(old_time==0){
ArrayResize(st_time, size+1); st_time[size]=new_time;
ArrayResize(st_id, size+1); st_id [size]=new_id; }
//----
return(old_time>0 && old_time<new_time);}
Peço desculpas pelo leve atraso.
Aqui está a primeira versão da função. Você pode refiná-lo e desenvolvê-lo ainda mais. Se você notar um erro, por favor, dê seus comentários.
A questão não está no OOP, mas no fato de seu código ser linear, embora você provavelmente nunca o aprenderá...
Não há problema. Hedge para salvar a comparação de operações de cordas, bem, se o cliente é um maníaco e irá negociar em todos os caracteres simultaneamente.
Mas parece que não há outro lugar para salvar operações e memória - tudo é mínimo.
Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos
Mt4 Fim do Apoio.
Artyom Trishkin, 2017.09.10 23:21
Eu tinha um objetivo para o resultado final de seu código de estilo de procedimento de trabalhar em tal laço:
Nomeado errado por hábito -bool Fn_new_bar(string symb, ENUM_TIMEFRAMES tf) é a função certa.
Bem, faça-o agora.
OK. Sua solução só funciona com carrapatos. O meu está em um temporizador. Você acha que meu método de cronometragem com as aparências em bares tem um inconveniente. Certo. Que seja assim. Vou acrescentar um cheque para a chegada de uma cotação antes de colocar uma nova bandeira de barra. Vou adicionar outro parâmetro à função - um símbolo. O usuário escolherá o símbolo pelo qual deseja receber o novo evento do bar e o enviará para a função. A função irá verificar a hora da última citação deste símbolo. Em seguida, compararemos a hora da apresentação formal do bar e a hora da citação e colocaremos a bandeira do evento.
Eu só agora comecei a estudar este assunto, mas não vejo nenhuma dificuldade.
Não se trata de OOP, trata-se de seu código ser linear, embora você talvez nunca saiba...