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

 
001:
Você pode me dizer se existe um otimizador automático que otimiza os parâmetros durante o teste? Tenho que verificar a idéia.
Há ainda um mais próximo, bem no nosso site.
E existe também a busca, que é quando as palavras com as quais o sujeito é nomeado são inseridas em um mecanismo de busca.
http://www.google.ru/search?as_sitesearch=mql4.com&as_q=автооптимизатор
 

Você poderia aconselhar como especificar corretamente em uma ordem pendente em uma EA para apagá-la automaticamente às 23:00?

Esta opção dá um erro:

  datetime Tim=D'23:00';
   int    Cur_Hour=Hour();             // Серверное время в часах   
   double Cur_Min =Minute();           // Серверное время в минутах   
   double Cur_time= Cur_Hour + Cur_Min/100; // Текущее время   
   if (Cur_time>=20.00&&Cur_time<=20.00&&order==false)
  {

ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.1,Bid-Spread,2,Bid-Spread-SL,Bid, Tim);
 
Andreev:

Você poderia aconselhar como especificar corretamente em uma ordem pendente em uma EA para apagá-la automaticamente às 23:00?

Esta opção dá um erro:


int Tim=iTime(NULL, Period_D1,0)+23*60*60;
ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.1,Bid-Spread,2,Bid-Spread-SL,Bid, Tim);
Algo como isto
 
dmmikl86:

Não sou um programador novato há alguns anos, reescrevi o indicador de outra língua e tropecei em um rastreio a descoberto.

Sou um principiante, reescrevi o indicador em outro idioma:


Eu preferiria ter o indicador como um arquivo. Ninguém vai colar as peças em um único arquivo
 
Andreev:

Esta opção dá um erro:

int Tim;
   int    Cur_Hour=Hour();             // Серверное время в часах   
   double Cur_Min =Minute();           // Серверное время в минутах   
   double Cur_time= Cur_Hour + Cur_Min/100; // Текущее время   
   if (Cur_time>=20.00&&Cur_time<=20.00&&order==false)
  { Tim=TimeCurrent( )+ (23-Cur_time)*3600

ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.1,Bid-Spread,2,Bid-Spread-SL,Bid, Tim);


Algo parecido com isto.
 
Vinin:

Algo como isto

Isso dá um erro:


2011.07.19 18:56:15 2011.07.18 20:00 Devolução EURUSD,M1: OrderSend error 4062
2011.07.19 18:56:15 2011.07.18 20:00 Retorno: o parâmetro de comentário para a função OrderSend deve ser uma string

 
alexshell:

É assim que as coisas são.

Por alguma razão eu recebo o mesmo erro. Se eu remover a função Tim da ordem, ela funciona, mas algumas negociações abrem depois das 23h00. O que posso fazer para limitar isto?
 
Andreev:

Eu tenho um erro:


2011.07.19 18:56:15 2011.07.18 20:00 Devolução EURUSD,M1: OrderSend error 4062
2011.07.19 18:56:15 2011.07.18 20:00 Retorno: o parâmetro de comentário para a função OrderSend deve ser uma string


Desculpe, eu editei sua versão sem verificar

 ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.1,Bid-Spread,2,Bid-Spread-SL,Bid, "",0,Tim, CLR_NONE);
 
Vinin:


Desculpe, edite sua versão sem verificar


Muito obrigado!!!! Funciona :)
 

Boa noite!!! Tenho uma pergunta sobre a função Alerta. Aqui está um robô sem um grande pedaço do meio e muitos h

//+------------------------------------------------------------------+
//|                                                    пробныйй .mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
extern double stoploss=0; extern double takeprofit=20;extern int otstup=20; extern datetime expiration=0;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
  
  
  int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;double price; int stsBUY;int stsSELL;double Price;int C=0;datetime wremjapomnim;
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {int X,Y; double price=NormalizeDouble((Ask+Bid)/2,4) ; Alert ("price", price);Alert("otstup*Point",otstup*Point);
//----
Alert ("Price +otstup*Point",Price +otstup*Point);Alert ("Price+takeprofit*Point+otstup*Point", Price+takeprofit*Point+otstup*Point);
tiket= OrderSend( Symbol(), OP_BUYSTOP,  volume*A, Price +otstup*Point, Point* 3, R1, Price+takeprofit*Point+otstup*Point, "OP_BUYSTOP", 1000,  expiration, Red); 
   Alert ("OP_BUYSTOP", GetLastError( ));
  Alert ("Price -otstup*Point",Price -otstup*Point);Alert ("Price-takeprofit*Point-otstup*Point", Price-takeprofit*Point-otstup*Point); 
tikett= OrderSend( Symbol(), OP_SELLSTOP,  volume*A, Price -otstup*Point, Point* 3,R2, Price-takeprofit*Point-otstup*Point, "OP_SELLSTOP" , 2000,  expiration,C'0,128,255' );
    Alert ("OP_SELLSTOP", GetLastError( )); 
   
//----

// Здесь код для закрытия всех открытых позиций (тоже в цикле)
         for ( i=0; i<OrdersTotal(); i++) {
           OrderSelect(i, SELECT_BY_POS );
              if (  OrderType( )==OP_BUY && OrderType( )==OP_SELL ){
                          OrderClose( OrderTicket( ), OrderLots( ), OrderClosePrice( ) , 0, CLR_NONE);
   Alert ("OrderClose-vse-2",  GetLastError( ) ); C=0;A=1; }} 
         // Здесь код для удаления всех отложенных ордеров (также в цикле)
         for ( i=0; i<OrdersTotal(); i++) {
         OrderSelect(i, SELECT_BY_POS );
           if (  OrderType( )==OP_BUYSTOP && OrderType( )==OP_SELLSTOP ){ 
            OrderDelete(OrderTicket( )) ; Alert ("OrderDelete-vse-2",  GetLastError( ) ); }}    
        
   return(0);
  }
//+------------------------------------------------------------------+
Alerta deve registrar oalerta de preço ("preço", preço); digamos 1,4825, e ele faz, ou seja, a variável é normal. E então!!!

Alerta ("Price +otstup*Point",Price +otstup*Point); É Preço + travessão(20pp)* multiplicar por um ponto(0.0001) total-1.4805 deve ser, (!!!!) mas escreve 0.002

etc. Aqui: Como posso entender? Qual é a sintaxe para as fórmulas?