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 372

 
Ekburg:

E daí?! Funciona?:)


bem, sim. Você mesmo pode verificar=) definir a quantia acima de 700 dólares e testá-la=) intervalo de 5 minutos

Você também poderia modificá-la e fazê-la começar todas as noites por si mesma =)

 
SpikeOne:


bem, sim. Você mesmo pode verificar=) definir a quantia acima de 700 dólares e testá-la=) intervalo de 5 minutos

Você também poderia modificá-la e fazê-la começar todas as noites por si só=)


Estou vendo)))) Boa sorte então na conquista das alturas rentáveis))
 

Olá.

Se eu tentei desta maneira, tive um problema com ele, mas nunca o encontrei... Se eu tentei desta maneira, a ordem colocará o valor da barra anterior como um TakeProfit... Eu tentei de ambas as maneiras... A ordem nunca vê a variável e a ignora... Como resultado, o TP é ajustado para 0 ou 1 ou 2...

experimentei tudo o que me veio à cabeça não funciona.... O mais não está claro Se eu substituir "TP =" por "Print it escreve tudo... Ajude um iniciante.... Serei muito grato.

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, (Ask +((High[1]-Low[1])*3)*Point), "", 123, 0, Blue);

_______________________________________________________________________________________

para (int i=1;i<=1;i++)

TP = ((Alto[i]- Baixo[i])*3);

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, Ask + TP*Point, "", 123, 0, Blue);

____________________________________________________________________________________________

 
PaMyC:

Olá.

Se eu tentei desta maneira, tive um problema com ela, mas nunca a encontrei... Se eu tentei desta maneira, a ordem colocará o valor da barra anterior como um TakeProfit... Eu tentei de diferentes maneiras... A ordem nunca vê a variável e a ignora... Como resultado, o TP é ajustado para 0 ou 1 ou 2...

tentou tudo o que me veio à cabeça não funciona.... O mais não está claro Se eu substituir "TP =" por "Print it escreve tudo... Ajude um iniciante.... Serei muito grato.

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, (Ask +((High[1]-Low[1])*3)*Point), "", 123, 0, Blue);

_______________________________________________________________________________________

para (int i=1;i<=1;i++)

TP = ((Alto[i]- Baixo[i])*3);

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, Ask + TP*Point, "", 123, 0, Blue);

____________________________________________________________________________________________



O thp em OrderSend() não é o número de pontos, mas o preço pelo qual a ordem será fechada, e quando você define o thp é necessário lembrar sobre o nível de congelamento (cada DTZ tem seus próprios problemas).

pode ser útil, graças a Artem.

artmedia70 15.12.2013 22:34 #

Há também um StopLevel não contabilizado. Se você não o conhece, pode ser igual a zero e então é calculado de forma diferente. Na Alpari, por exemplo, é sempre zero, mas há limites e eles são calculados como spread*2

Portanto, primeiro defina o StopLevel:

A nível mundial:

int level=0, sp=0;

Em seguida, no início() :

   sp=MarketInfo(sy,MODE_SPREAD);
//-------------- Проверка StopLevel ---------------
   level=MarketInfo(sy,MODE_STOPLEVEL );           // Значение уровня установки стопов
   if (level==0) level=sp*2;

E então já comparar o tamanho da ordem de parada com o nível recebido e usar os valores corretos calculados para as ordens de parada:

//+----------------------------------------------------------------------------+
   double pa=MarketInfo(Symbol(),MODE_ASK),  // цена Ask
          pb=MarketInfo(Symbol(),MODE_BID),  // цена Bid
          sl=0, tp=0;
   if(OrderType()==OP_BUY) {
      sl=NormalizeDouble(MathMin(pb-StopLoss*Point,pb-(level+1)*Point),Digits);
      tp=NormalizeDouble(MathMax(pb+TakeProfit*Point,pb+(level+1)*Point),Digits);
      // далее используем полученные уровни 
      // sl для цены StopLoss 
      // и tp для цены TakeProfit
      }
   if(OrderType()==OP_SELL) {
      sl=NormalizeDouble(MathMax(pa+StopLoss*Point,pa+(level+1)*Point),Digits());
      tp=NormalizeDouble(MathMin(pa-TakeProfit*Point,pa-(level+1)*Point),Digits());
      // далее используем полученные уровни 
      // sl для цены StopLoss 
      // и tp для цены TakeProfit
      }
//+----------------------------------------------------------------------------+

 

Eu também não tinha apenas itens em meu código, eu tinha um valor de preço...

Acho que entendo o que seu código diz, mas como ele deve ajudar...?

 
PaMyC:

Eu também não tinha apenas itens em meu código, eu tinha um valor de preço...

Acho que entendo o que está escrito em seu código, mas como ele deve ajudar...?


explicar

dado:

Baixo=1,3674

Alta=1,3811

Ask=1.3734

Seus cálculos:

Pergunte +((Alto[1]-Baixo[1])*3)*Ponto = 1.3734+((1.3811-1.3674)*3)*Ponto = 1.3734+(0.0137*3)*Ponto = 1.3734+(0.0411)*Ponto = 1.3734+411 = 412.3734 - não me parece uma boa citação)

basta remover a multiplicação por ponto e pronto)

 
PaMyC:

Eu também não tinha apenas itens em meu código, eu tinha um valor de preço...

Acho que entendo o que seu código diz, mas como ele deve ajudar...?


Você pode imprimir TRs normalmente, mas quando você faz um pedido, você o multiplica por um ponto e estraga tudo...
 
PaMyC:

Eu também não tinha apenas itens em meu código, eu tinha um valor de preço...

Acho que entendo o que seu código diz, mas como ele deve ajudar...?


Talvez não seja um número grande, mas sim um número muito pequeno, é por isso que você define o TP como 0 ou 1.
 
vadynik:
Você pode me dizer como fazer uma trilha virtual, como substituir OrderModify() ?


Eu tenho um bloco com trilha para um robô, tanto o normal quanto o meu próprio específico (para movimentos de notícias)

Eu posso enviá-lo a você, mas é com você).

 
Ekburg:

Você imprime o TP normalmente, mas ao fazer o pedido você, novamente, multiplica pelo ponto e estraga tudo...


Muito obrigado por ter ajudado), apenas removeu o ponto e os milagres feitos))))

Como eu pensava que o erro era muito pequeno, mas tão desagradável...