Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 576

 
Há uma pergunta sobre o TimeLocal(), esta funçãoretorna a hora local do computador no qual o terminal cliente está rodando. Ao mesmo tempo, o TimeToStr converte um valor que contém o tempo em segundos desde 01.01.1970 .
Por exemplo:


void init() {
   Print("Time_Start = " + TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS) );
}

get:

2014.04.11 15:05:50.031 2001.01.03 07:25 : Time_Start = 2001.01.03 07:25:00
Como converter o formato de tempo obtido do
TimeLocal() para "2014.04.11 15:05:50"?

 
Por favor, me diga, esta pode parecer uma pergunta inapropriada, mas você já conheceu um consultor especializado que negocia por padrões de castiçais?
 
Profitov:
Por favor, me diga, esta pode parecer uma pergunta inapropriada, mas você já conheceu um consultor especializado que negocia por padrões de castiçais?

Sim, eu tenho :) Estou trabalhando somente nessa direção. Em geral, você foi para o lugar errado. Se você quer aprender, você tem que perguntar.
 

Tenho a seguinte pergunta. Trata-se, pelo que entendi, do layout do código antes da compilação. A essência é esta:

Tenho todas as bibliotecas, como acontece, escritas separadamente. Cada biblioteca tem seu próprio arquivo de inclusão, que é incluído no código do Expert Advisor ou em outra biblioteca, se você quiser adicionar uma biblioteca. Aqui é o mesmo de sempre.

Escrevi uma biblioteca que é, como eu diria, básica, mas que também é muito comumente usada. Em geral, algumas funções desta biblioteca são utilizadas por algumas bibliotecas e algumas são utilizadas por outras. O arquivo de cabeçalho desta biblioteca tem relativamente muitas variáveis globais. Estou interessado neste ponto. Se eu ligar esta biblioteca a diferentes bibliotecas, cada uma das quais necessita apenas de algumas funções desta biblioteca, o linker irá de alguma forma otimizar o código? Ou toda a biblioteca será acrescentada às bibliotecas onde eu a importei?

 
hoz:

Eu tenho uma pergunta ...

A pergunta parece já ter sido feita há alguns meses. Você só pode obter uma resposta normal dos desenvolvedores, pois as especificidades e a linguagem de gerenciamento de tarefas são conhecidas apenas por eles. Abaixo estão minhas especulações.

O mecanismo de carregamento dinâmico das funções da biblioteca - DLL, não implica em descarregamento dinâmico das mesmas.

Qualquer função na biblioteca dinâmica de chamadas é carregada no momento em que se refere a ela (a função).

Se carregar uma função implica carregar algum ambiente(variáveis globais), então não vejo outra solução simples a não ser carregar toda a biblioteca.

Se uma função de biblioteca em uma DLL chama uma função de outra biblioteca com as mesmas características, esta última será carregada completamente.

Agora vem a parte divertida.

Somente os desenvolvedores serão capazes de responder: o que acontece se a seqüência de chamadas de função acima for repetida.

Minha recomendação: nunca utilize variáveis globais em funções de biblioteca e não leia os jornais soviéticos no café da manhã.

 
tara:

A pergunta parece ter sido feita há alguns meses. Uma resposta normal só pode ser obtida dos desenvolvedores, pois as especificidades e a linguagem da gestão de tarefas são conhecidas apenas por eles. Abaixo estão minhas especulações.

O mecanismo de carregamento dinâmico das funções da biblioteca - DLL, não implica em descarregamento dinâmico das mesmas.

Qualquer função na biblioteca dinâmica de chamadas é carregada no momento em que se refere a ela (a função).

Se carregar uma função implica carregar algum ambiente (variáveis globais), então não vejo outra solução simples a não ser carregar toda a biblioteca.

Se uma função de biblioteca em uma DLL chama uma função de outra biblioteca com as mesmas características, esta última será carregada completamente.

Agora vem a parte divertida.

Somente os desenvolvedores serão capazes de responder: o que acontece se a seqüência de chamadas de função acima for repetida.

Minha recomendação: nunca utilize variáveis globais em funções de biblioteca e não leia os jornais soviéticos no café da manhã.

Uma biblioteca é descarregada quando o fio que a chamou termina, se não houver outro mecanismo para manter a biblioteca. Por exemplo, com um contador de chamadas.

As variáveis globais são más :-) É melhor nunca usá-los.

 

Boa tarde,

Estou testando os robôs no testador e obtenho fechamento aleatório de posições seguido de sua abertura, o que significam essas entradas de troca nos resultados do teste? Estou levando todo o meu martingale para o inferno por causa disto :)

107 2014.04.01 17:19 venda 54 1.23 1.38105 1.38204 1.37891 0.00 9664.86

108 2014.04.02 00:00 fechamento do swap 54 1.23 1.37934 1.38204 1.37891 210.33 9875.19

109 2014.04.02 00:00 swap aberto 55 1.23 1.37934 1.38204 1.37891 0.00 9875.19

110 2014.04.02 08:31 s/l 55 1.23 1.38204 1.38204 1.37891 -332.10 9543.09


 
Zhunko:

Uma biblioteca é descarregada quando o fio que chamou aquela biblioteca termina, se não houver outro mecanismo para manter a biblioteca. Por exemplo, com um contador de chamadas.

As variáveis globais são más :-) É melhor nunca usá-los.


Então, como essas questões são tratadas? Digamos que existe uma lista de variáveis que são utilizadas em diferentes bibliotecas. Tomemos, por exemplo, a variável bi_Err que contém o último erro. Acontece que sem uma variável global, eu tenho que declarar a mesma variável em cada biblioteca e lidar com o análogo da variável bi_Err. E há muitas dessas variáveis. Portanto, a questão foi colocada porque acontece que sem usar variáveis globais em tais casos, em cada biblioteca, onde tais variáveis são usadas, tenho que declarar estas variáveis (que agora são globais), e os valores destas variáveis são passados através dos parâmetros das funções, que usam estas variáveis.

Acontece que, em vez de declarar essas variáveis globalmente uma vez, tenho que declará-las em cada biblioteca separadamente. E isto não faz realmente sentido.

 
hoz:

Conhecer... os seus próprios :) Isso é praticamente tudo com o que estou pingando. Em geral, você tem a direção errada. Se você quiser aprender, pergunte...

Obrigado, é isso que eu quero perguntar onde começar a cavar nesta direção, já que você já está trabalhando na mesma direção.
 
Profitov:

Obrigado, é isso que eu quero perguntar onde começar a cavar nesta direção, já que você já está trabalhando na mesma direção.

Não entendo bem o motivo da pergunta. Com relação ao algoritmo, a escolha é sua. Quanto ao código, não há nada de complicado aí. Os castiçais têm seu preço alto, baixo, aberto e fechado. E quando você tem estes dados, você pode obter quaisquer outros dados de mercado, incluindo os níveis de Fibo, se necessário.