[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 298

 
Roger:

Talvez porque o roteiro foi escrito há muito tempo e tinha 4 dígitos, agora ele tem 5. preciso aumentar a parada e receber ordens em 10 vezes.


Obrigado pela resposta, mas estou um pouco confuso. Quando solicito iOpen(Symbol(),PERIOD_H4,0) me dá um preço com 4 casas decimais.

Se eu puder, favor aconselhar como prescrever o número de lotes, que devem usar o pedido para abrir (supõe-se que usem 10% dos fundos disponíveis para negociar na conta)?

Eu ficaria muito grato.

 

Você pode me dizer, por favor, ao testar um EA - qualquer que seja o período que eu escolher, teste apenas as últimas 2-3 semanas... Por que isto é assim?

Eu quero testar um ano =((

 
kon12:
Isso é verdade?

É o que parece. Basta lembrar de verificar com um testador.
 
Boneshapper:


Obrigado pela resposta, mas estou um pouco confuso. Quando solicito iOpen(Symbol(),PERIOD_H4,0) me dá um preço com 4 casas decimais.

Se eu puder, favor aconselhar como prescrever o número de lotes, que devem usar o pedido para abrir (supõe-se que usem 10% dos fundos disponíveis para negociar na conta)?

Eu ficaria muito grato.


O preço que ele dá com 5 dígitos, você vê apenas 4, mas essa não é a parte complicada. Normalmente, quando você abre pedidos para definir um preço de parada, você usa um valor relativo em pips e depois o multiplica pelo valor de um pip. Portanto, se você definir uma parada de 50 pip e tiver uma parada de 4 dígitos a 0,0001, você receberá a diferença entre o preço aberto e a parada a 0,005, mas se você tiver uma parada de 5 dígitos, será 0,00001 e será apenas 0,0005, o que não lhe permitirá abrir uma ordem com uma parada muito baixa.

O tamanho do lote é calculado a partir do valor do lote e da taxa de câmbio da moeda base até a moeda do seu depósito. Mas basicamente é uma simples aritmética, tente você mesmo elaborar a fórmula.

 
w_ersoc:

Você pode me dizer, por favor, ao testar um EA - qualquer que seja o período que eu escolher, teste apenas as últimas 2-3 semanas... Por que isto é assim?

Eu quero testar um ano =((


Deve estar faltando história. Puxe o gráfico de volta com o mouse para que ele bombeie os dados do servidor.
 
Roger:


O preço é dado com 5 dígitos, você vê apenas 4, mas essa não é a parte complicada. Normalmente, ao abrir ordens para definir uma parada, usamos um valor relativo em pips e depois o multiplicamos pelo valor de um pip. Em outras palavras, se você definir uma parada de 50 pip e tiver uma parada de 4 dígitos a 0,0001, você teria uma diferença de 0,005 entre o preço aberto e a parada, mas se você tiver uma parada de 5 dígitos, você teria uma diferença de 0,00001 e seria apenas 0,0005, o que tornaria sua parada muito curta.

O tamanho do lote é calculado a partir do valor do lote e da taxa de câmbio da moeda base até a moeda do seu depósito. Mas basicamente é uma simples aritmética, tente você mesmo elaborar a fórmula.


Ok, definitivamente vou tentar. Muito obrigado por suas respostas!
 

MarketInfo(Símbolo (),MODE_POINT) função sempre retorna 0. E avariável Ponto o tempo todo também retorna 0.

Tenho outra pergunta, o pedido não está aberto, mas eu o prescrevi corretamente.

OP1H = iOpen(Symbol(),PERIOD_H1,0);
OP_D = iOpen(Symbol(),PERIOD_D1,0);
SL = OP_D-0.0055;
TP = OP1H+0.0050;
OrderSend (Symbol (), OP_BUY, 0,01,OP1H, 2, SL, TP,Lime);

 

Você pode me dizer se existe uma função interna ou externa que devolve o tamanho do lote da última posição fechada?

 
david2:

Você pode me dizer se existe uma função interna ou externa que devolve o tamanho do lote da última posição fechada?


ver aqui - está definitivamente lá. Sob - trabalhar com ordens e posições...
 
Boneshapper:

MarketInfo(Símbolo (),MODE_POINT) função sempre retorna 0. E a variável Ponto o tempo todo também retorna 0.

Por favor, informe como abrir o pedido, mesmo que eu o tenha prescrito corretamente.

OP1H = iOpen(Symbol(),PERIOD_H1,0);
OP_D = iOpen(Symbol(),PERIOD_D1,0);
SL = OP_D-0.0055;
TP = OP1H+0,0050;
OrderSend (Símbolo (), OP_BUY, 0,01,OP1H, 2, SL, TP, Lime);


Pode haver muitos erros aqui - leia atentamente o tutorial - esta seção - para que todas as condições de abertura de pedidos correspondam às especificadas nesta seção, e também - não se esqueça de normalizar os preços.

Por exemplo, veja Normalize TP. Além disso, pressione F1 na função de normalização e leia atentamente sua ajuda - NormalizeDouble ().

Além disso, verifique o tamanho de lote 0,01 - este é um micro lote; tente entrar 0,1 - sua conta pode não ser uma micro conta.

..........
TP = NormalizeDouble ((PRICE + Mul1*iATR(Symbol(), 0, ATRPeriod_3, 1)), Digits) ;      // TakeProfit (цена)
         
         if (TP<Level_new*Point) TP=Level_new*Point;   // Если меньше допустимого, то допустимый  
         
         Ticket=OrderSend(Symbol(),4,Lots_New,PRICE,5,SL,TP,"Classiс_3_screen",Magic,0,Green); 
...........