[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 179

 
Rustbunch:

Ajude-me a encontrar um EA ou um roteiro, deve haver um pronto...

Preciso de um EA para abrir um negócio com um certo prejuízo e lucro em um determinado momento no mercado. Não preciso de mais nada dele...

Agradecemos antecipadamente.

Qualquer Expert Advisor faz isso no MetaEditor, e os scripts correspondentes no MetaEditor!

if(Hour() >= xx) открыть;
 
Porque eu tenho a contabilidade de pedidos em uma matriz. É tudo muito fácil.
 
if (!PozyProstavleny){ ArrayResize(Buy,Raz);ArrayResize(Sell,Raz);
   
           Price= (Ask+Dist*Point) ; TP_BUY=(Price+TP*Point);  SL_BUY= (Price- SL*Point);
           Price_SELL= (Bid-Dist*Point) ;  TP_SELL=Price_SELL-TP*Point;  SL_SELL=Price_SELL+SL*Point; K=1;
           
   for(int Raz1=0;Raz1<Raz;Raz1++){
   
           Sleep(2000); RefreshRates();  for(int A=25;A>=0;A--){if(IsTradeAllowed())break;if(A==0) Comment(" эксперту не разрешено 
торговать или поток для выполнения торговых операций занят "); }           
  tyccBuy= OrderSend (Symbol( ), OP_BUYSTOP,  Lot ,NormalizeDouble(Price, Digits), 5, NormalizeDouble( SL_BUY,Digits),  
 NormalizeDouble( TP_BUY,Digits), NULL, 450, 0, CLR_NONE);
   Buy[Raz1]= tyccBuy;
           Price= (Price+Dist*Point) ; TP_BUY= (Price+TP*Point); SL_BUY= (Price- SL*Point);
           Error=GetLastError();
     if (Error!=0){ string errorcomment = "Ошибка открытия ордера байстоп  "  + " " + Symbol() +  " " + ErrorDescript(Error); 
           Print (errorcomment);}
           
           Sleep(2000); RefreshRates();  for( A=25;A>=0;A--){if(IsTradeAllowed())break;if(A==0) Comment(" эксперту не разрешено торговать
 или поток для выполнения торговых операций занят "); }        
           Sell[Raz1]=OrderSend (Symbol( ), OP_SELLSTOP,  Lot ,NormalizeDouble(Price_SELL, Digits), 5, NormalizeDouble( SL_SELL,Digits), 
  NormalizeDouble( TP_SELL,Digits), NULL, 450, 0, CLR_NONE);
     Price_SELL= (Price_SELL -Dist*Point) ;TP_SELL=Price_SELL-TP*Point;   SL_SELL=Price_SELL+SL*Point;
            Error=GetLastError();if (Error==0)
            
            {errorcomment = "Ошибка открытия ордера селлстоп  "  + " " + Symbol() +  " " + ErrorDescript(Error); 
        Print (errorcomment);} PozyProstavleny=1; 
                       }
                       }   
                        
 

Bom dia a todos vocês!

Eu sou um novato. Esta é minha primeira vez tentando colocar uma idéia em código no testador.

A idéia é simples - abrir um pedido alternadamente para cima e para baixo ao preço de abertura de cada candelabro horário.

Eu escrevi um código simples .... Mas o problema é que o programa às vezes abre mais de 1 ordem na abertura de um candelabro.

Como me parece, isso acontece quando mais de 1 tick chega em 1 segundo.

Eu tentei colocar no cabeçalho da condição de if( ) ...

OrdensTotal()==0

Apenas um pedido realmente se abre.



Mas esta variante não me convém desde o dia seguinte a vela dada não é aberta, já que no momento da abertura desta vela

Já existe um número aleatório de ordens no comércio.

Eu também tentei interromper a execução do OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP) com retorno; ..... não ajudou.


Agradecia que você me dissesse como fazer apenas 1 pedido é aberto a qualquer momento dentro de 1 segundo.

int start()

{
double Price=Ask;
double SL=Price-300*Point;
double TP=Price+300*Point;
if( Hora()===10 && Minuto()== 00 &&Segundo()==00)
OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP);
}

 
E assim por diante.
 
Dimka-novitsek:
Bem, eu não sei como, mas os dados devem ser salvos.

//записать

void SaveArray(string File, double &a[])
{
    int h = FileOpen(File, FILE_BIN|FILE_WRITE);
    if(h>0)
    {
      int sz = ArraySize(a); 
      FileWriteArray(h,a,0,sz);
      FileClose(h);
    }
}

//прочитать

void OpenArray(string File, double &a[], int sz)
{
    int h = FileOpen(File, FILE_BIN|FILE_READ);
    if(h>0)
    {
      ArrayResize(a,sz);
      FileReadArray(h,a,0,sz);
      FileClose(h);
    }
}
 
solnce600:

Bom dia a todos vocês!

Eu sou um novato. Esta é minha primeira vez tentando colocar uma idéia em código no testador.

A idéia é simples - abrir um pedido alternadamente para cima e para baixo ao preço de abertura de cada candelabro horário.

Eu escrevi um código simples .... Mas o problema é que o programa às vezes abre mais de 1 ordem na abertura de um candelabro.

Como me parece, isso acontece quando mais de 1 tick chega em 1 segundo.

Eu tentei colocar no cabeçalho da condição de if( ) ...

OrdensTotal( )==0

Apenas um pedido realmente se abre.



Mas esta variante não me convém desde o dia seguinte a vela dada não é aberta, já que no momento da abertura desta vela

Já existe um número aleatório de ordens no comércio.

Eu também tentei interromper a execução do OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP) com retorno; ..... não ajudou.

Agradecia que você me dissesse como fazer apenas 1 pedido é aberto a qualquer momento dentro de 1 segundo.

int start()

{
preço duplo=Ask;
duplo SL=Price-300*Point;
duplo TP=Preço+300*Ponto;
if( Hora()===10 && Minuto()== 00 && Segundos()==00)
OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP);
}

Se isso é TechZad, você está no trabalho!
 
Obrigado!!!!!!
 

solnce600:

Eu ficaria grato se você me dissesse como fazer para que dentro de 1 segundo, apenas 1 pedido seja aberto em qualquer carrapato.

int start()
{
...

int ot=OrdersTotal();

bool open_allowed = true;

if(ot>0)
{
   if(OrderSelect(ot-1,SELECT_BY_POS))
   {
      if(TimeCurrent()-OrderOpenTime()<=1) open_allowed=false;  //если разница между текущим временем сервера и временем открытия последнего ордера 1 секунда или меньше, запретить торговлю
   }
}

if(open_allowed)
{
   //открываемся
}
...
}
 
Certo... Declare algumas variáveis antes de começar, lembre-se do tempo. Após fazer um pedido, é igual a, digamos, verdade. Antes de defini-la, verifique também por ela. Eu não sou bom em variáveis de tempo. Antes de fazer o pedido, verifique se o tempo é maior que o tempo real se ele for adicionado a esta variável. Se já não for mais, então, encomende e lembre-se novamente do novo tempo! Sim, é assim que as coisas são. Um pouco simples mesmo!!!