[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 414

 
Tentei colocá-lo em meu lugar, mas também é lento. Nunca vi nada disso, eu só consegui Metatrader.
 
Sepulca:

Vou lhe dizer exatamente, há exatamente 80 deles. E a sss2019 tem tudo certo com os parâmetros. Mas o que é este indicador selvagem com tantos parâmetros?

É isso mesmo, é correto, mas ainda assim é um erro.
 

escreveu uma modificação das ordens. Quando o preço for alcançado, mova a perda para o nível do preço de abertura. Sai o erro 130. Não entendo o que está errado. Fui capaz de escrever ordens de rastreamento antes...

if (UseTrailing)
{ 
  for (int trall=0; trall<OrdersTotal(); trall++) 
  {
    if (!(OrderSelect(trall, SELECT_BY_POS, MODE_TRADES))) continue;
    if (OrderSymbol()!=Symb)continue;        
 
    if (Tip==0 && top!=1) 
       {
        RefreshRates();
        SLM=OrderOpenPrice();
        if (Bid-OrderOpenPrice() > WithoutLoss*Point   ) 
           {
           if (OrderStopLoss() < Bid-WithoutLoss*Point) 
              {
              OrderModify(Ticket_B, OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, Blue);
              top=1;
               }
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
         continue;                              // Повторная попытка
         return;                                // Выход из start()

            }
        }
 
    if (Tip==1 && top!=2) 
       {
        RefreshRates();
        SLM=OrderOpenPrice();
       if ( OrderOpenPrice()-Ask > WithoutLoss*Point) 
          {
          if (OrderStopLoss() > Ask+WithoutLoss*Point) 
             {
              OrderModify(Ticket_S, OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, Blue);
              top=2;
              }
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
         continue;                              // Повторная попытка
         return;                                // Выход из start()

           }
         }
 
Egori4:

escreveu uma modificação das ordens. Quando o preço for alcançado, mova a perda para o nível do preço de abertura. Sai o erro 130. Não entendo o que está errado. Fui capaz de escrever ordens de rastreamento antes...

Você está trabalhando em loop em todos os pedidos, mas há uma dica variável que nunca muda e ninguém sabe o que é igual a ela. Além disso, você analisa um pedido e modifica um totalmente diferente com o bilhete armazenado na variável Ticket_B ou Ticket_S, respectivamente
 
ilunga:
Você trabalha em loop em todos os pedidos, mas há alguma variável Tip, que não muda e não sabe o que é igual. Além disso, você analisa um pedido e modifica um pedido completamente diferente com uma variável Ticket_B ou Ticket_S, respectivamente
então eu preciso verificar também Tipo de Pedido? (se Tip=0, então é comprar, se Tip=1 é vender. e Ticket_B é compra aberta, Ticket_S é venda aberta)
 
Sepulca:


Quando você abre uma ordem pendente, estabelece um prazo de validade, digamos 23:59, a ordem fechará por si só.

nt OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)

Tentei definir o tempo de expiração em 24 horas (OrderOpenTime()+86400), mas se o pedido abrir uma hora ou duas mais tarde, ele também fechará mais tarde...
 

Boa tarde, pessoal, alguém por favor me ajude com a função WindowScreenShot. Para o 3º dia ninguém responde((. Escreveu o seguinte roteiro (ver arquivo anexo).

Em 2 palavras sobre o roteiro. O script destina-se a fazer screenshots do gráfico atual da janela do terminal do cliente. Na variável externa data/hora Time_bar a hora da barra a partir da qual e até a barra zero será criada (levando em conta o travessão direito no gráfico) é especificado. Na linha

int bar_number=iBarShift(NULL,0,Time_bar,true)

o número de série da barra que especificamos na variável externa data/hora_barra externa é procurado. A função em si, na linha

bool f=WindowScreenShot(name+".gif",1024,768,bar_number,Scale,View_graph)

Agora a questão é a seguinte... Para simplificar, vamos supor que precisamos criar uma captura de tela das duas últimas barras. Então, se a linha

int bar_number=iBarShift(NULL,0,Time_bar,true)

é deixado inalterado, o resultado será a seguinte captura de tela


Ou seja, não há barra na captura de tela (embora a corda

int bar_number=iBarShift(NULL,0,bar_time,true)

o número de barras por tempo deve ser calculado)

Se esta linha for apresentada da seguinte forma

int bar_number=iBarShift(NULL,0,Time_bar,true)+2

você terá a captura de tela que queríamos:

Pergunta: por que no caso desta corda ter a seguinte forma

int bar_number=iBarShift(NULL,0,Time_bar,true)

a captura de tela é feita com um deslocamento de 2 barras para a direita da especificada na linha acima?

P.S. A fim de não desorganizar o fórum, obrigado antecipadamente por sua resposta
Arquivos anexados:
 
Egori4:
Perdoe-me... não há como definir a hora (não consigo descobrir o formato). tentei definir o tempo de validade em 24 horas (OrderOpenTime()+86400), mas se a ordem abriu uma hora ou duas mais tarde, ela também fecha mais tarde...


Eu tentaria desta forma:

exp=iTime(Symbol(),PERIOD_D1,0)+86340;
Onde iTime(Símbolo(),PERÍODO_D1,0) é o tempo aberto da barra do dia, e 86340 é 23 horas e 59 minutos em segundos.
 
Egori4:
então eu preciso verificar também o Tipo de Pedido? (se Tip=0, então é comprar, se Tip=1 - vender. e Ticket_B é compra aberta, Ticket_S é venda aberta)

Se você tem ingressos armazenados em Ticket_B e Ticket_S, por que você precisa de um ciclo?

Basta selecionar por bilhete e ver se há condições para mudá-lo

 

Para onde vai a guia "Parâmetros de entrada" na seção "Propriedades do especialista" ??? Exemplo:

extern int A=1;
extern int B=2;
int init(){return(0);}
int deinit(){return(0);}
int start(){return(0);}

Tudo está bem, mas assim que eu adicionar stdlib.mqh:

#include <stdlib.mqh>
extern int A=1;
extern int B=2;
int init(){return(0);}
int deinit(){return(0);}
int start(){return(0);}

Não é possível ver os parâmetros de entrada: