[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 615
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
A propósito, intrigado com esta questão por muito tempo, mas nunca descobriu, simplesmente esqueceu. Onde o testador obtém os valores de stopplay? Se os valores reais podem ser alterados pelo servidor, então o resultado do teste deve depender do tempo do teste, o que não é o caso, eu verifiquei. Ou o valor armazenado nas propriedades do símbolo e o valor dado pelo servidor a pedido não é o mesmo?
rigonich
Isto é algum tipo de brincadeira ou algo assim? Onde você ri?
TarasBY
Você não pode? Então não o faça.
TarasBY
não está se movendo, idiota. Você é a aberração. Porque você não consegue nem mesmo articular duas palavras corretamente em russo.
Você é um idiota? Bem, eu não preciso torturá-lo. Descanse um pouco.
As variáveis do ambiente de mercado estão no arquivo de serviço symbols.raw (presumivelmente), que está localizado na pasta do histórico do servidor. Quando não há conexão com o servidor ou nos fins de semana, o terminal recebe os últimos dados deste arquivo.
Obrigado.
rigonich
Isto é algum tipo de brincadeira ou algo assim? Onde você ri?
TarasBY
Você não pode? Bem, você não deveria ter.
Escrevi em russo - não há quase nada sobre a declaração de variáveis globais no livro didático. Por exemplo, eu não sei o que é fGet_MineGV();
É uma função? Se for, o que ele faz? A busca por fGet no livro didático produz resultados zero.
O que devo declarar no int init() ? Você já escreveu:
{
fGet_MineGV();
}
Aqui na minha EA, a inicialização do init se parece com isto:
int init()
{
ArrayInitialize(buf3,0);
ArrayInitialize(b1,0);
ArrayInitialize(b2,0);
ArrayInitialize(b3,0);
ArrayInitialize(b4,0);
Comentário("Calcular valor médio "+ind");
m1=NormalizarDuplo(iCustom(NULL,tf,ind+"_a",0,0),2);
string d="Valor médio "+ind+"+DoubleToStr(m1,2);
tm=TimeCurrent();
int q=0,ticket=-1;
duplo opr=0,lote1=0;
for(q=0;q<OrdersTotal();q++)
{
e assim por diante, mais 100 linhas. Para onde, em que lugar, e o mais importante, o que exatamente devo declarar aqui? É realmente tão difícil escrever em russo? Vamos dobrar nossos dedos, sim.
Isto é uma função? Em caso afirmativo, o que ele faz? A pesquisa do fGet no livro didático dá zero resultados.
Sim, esta função, e não pode haver nada sobre ela no tutorial, ela não estava disponível no momento em que o tutorial foi escrito. Esta é uma função definida pelo usuário, que foi escrita especialmente para você.
{
rigonich
Eu o fiz no início. Eu inseri este pedaço de código dentro da função init, compilei-o, recebi uma nota:
Afunção "fGet_MineGV" não é referenciada e será removida do arquivo exp-file
Este aviso é claro para mim porque ainda não há nenhum registro lá, então não pode ler nada, certo?
Depois disso, escrevo a segunda parte do código dentro do início da função. Este fragmento se parece com este
void fSave_MineGV (string fs_PrefName = "") // prefixo do nome da variável
{
datetime ldt_NewBar;
datetime ldaTBeginBar = iTime (Symbol(), 1, 0)
// Salvar no início de cada minuto
se (ldt_NewBar == ldaTeginBar) retornar;
ldt_NewBar = ldaTBeginBar;
//
Salvar os valores de cada variável por sua vez string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1");
GlobalVariableSet (ls_Name, SUA);
ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
GlobalVariableSet (ls_Name, SUA1);
ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3")
GlobalVariableSet (ls_Name, BUA);
ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
GlobalVariableSet (ls_Name, BUA1);
}
Está tudo bem aqui?
Eu inseri esta parte do código logo após o cálculo de SUA, SUA1, BUA,BUA1.
Mas na compilação, o Expert Advisor dá os seguintes resultados:
27 erro(s), 64 advertência(ões)
rigonich
Eu o fiz no início. Eu inseri este pedaço de código dentro da função init, compilei-o, recebi uma nota:
A função "fGet_MineGV" não é referenciada e será removida do arquivo exp-file
Este aviso é claro para mim porque ainda não há nenhum registro lá, então não pode ler nada, certo?
Depois disso, escrevo a segunda parte do código dentro do início da função. Este fragmento se parece com este
void fSave_MineGV (string fs_PrefName = "") // prefixo do nome da variável
{
datetime ldt_NewBar;
datetime ldaTBeginBar = iTime (Symbol(), 1, 0)
// Salvar no início de cada minuto
se (ldt_NewBar == ldaTeginBar) retornar;
ldt_NewBar = ldaTBeginBar;
//
Salvar os valores de cada variável por sua vez string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1");
GlobalVariableSet (ls_Name, SUA);
ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
GlobalVariableSet (ls_Name, SUA1);
ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3")
GlobalVariableSet (ls_Name, BUA);
ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
GlobalVariableSet (ls_Name, BUA1);
}
Está tudo correto aqui?
As descrições das funções não podem ser colocadas nem no início, nem no inite, nem em qualquer outra função. Elas devem ser colocadas separadamente. Você pode colocá-las no meio de sua EA, ou no início, ou no final, mas não em outras funções. Você só deve colocar a chamada de função no init, você pode colocá-la logo no início.
Esta observação é clara para mim, porque o registro ainda não foi criado, não pode contar nada, certo? Exatamente, não há descrição da função, que o compilador procura onde ela deve estar - fora das funções pragmáticas.
{
fGet_MineGV();
}
O mesmo se aplica à segunda função. Esta é uma "cartilha", e é difícil supor que alguém fazendo programação, mesmo um iniciante, não possa saber disso.
Boa noite! A parada de trilha funciona imediatamente após o pedido ser feito. E deve funcionar somente quando o pedido com o bilhete passar para a história, e será movido estritamente pela TakeProfit.
Mas, se seu histórico não estiver vazio, você quase certamente encontrará lá uma ordem acionada exatamente na Take Profit? Aparentemente, você não está procurando no histórico por um pedido fechado na TP, mas está verificando o histórico para descobrir como o pedido precisa ser fechado e se ele foi fechado de alguma forma. Isso é o que você precisa verificar, por que você verifica exatamente qual é o preço de fechamento de seu pedido? Três opções - 1. preço fechado==0 - se a ordem é de mercado, não está no histórico (OrderSelect() retornará falso) 2. preço fechado é igual a
rigonich
Vinte e cinco novamente. Eu perguntei muito especificamente se eu havia dado o primeiro passo correto. Você não respondeu a uma pergunta direta, você não disse uma palavra em substância.
Sim, claro, eu li um livro didático, mas como tenho uma profissão que não tem nada a ver com programação, é claro que estou pedindo um algoritmo claro, simples e concreto. Quão difícil é entender? Se você acha difícil responder sobre os méritos, então por que se preocupar? Basta ir embora.
E como comentário - você não tem idéia de quantas pessoas eu conheço que eu, como clínico geral, posso chamar de estúpidas. É difícil imaginar que os adultos não entendam as perguntas básicas sobre sua própria saúde. Se eu reagir a todos da maneira como vocês reagem, então não terei valor como especialista. Durma bem.
_______________
Por favor - alguém me mande um e-mail para neroy(dog)mail.ru que pode pegar o código EA e colar o que você precisa no lugar certo.