[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 529

 
001 :
테스트 중에 매개변수를 최적화하는 "자연"에 자동 최적화 도구가 있습니까? 아이디어를 테스트해야 합니다.
우리 웹 사이트에 더 가깝습니다.
그리고 검색이라는 것이 있는데, 검색의 대상이 되는 단어를 검색 엔진에 삽입하는 것입니다.
http://www.google.ru/search?as_sitesearch=mql4.com&as_q= 자동 최적화
 

Expert Advisor에서 23:00에 보류 중인 주문 에서 자동 삭제를 올바르게 지정하는 방법을 알려주시겠습니까?

이 옵션은 다음과 같은 오류를 제공합니다.

   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 :

Expert Advisor에서 보류 중인 주문에서 23:00 자동 삭제를 올바르게 지정하는 방법을 알려주시겠습니까?

이 옵션은 다음과 같은 오류를 제공합니다.


 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);
이 같은
 
dmmikl86 :

일반적으로 초보자가 아닌 것 같습니다. 나는 몇 년 동안 프로그래밍을 하고 다른 언어에서 표시기를 다시 작성하고 다시 그리기를 보았습니다. 수정하고 오류가 어디에 있는지 보여주세요???

다음은 표시기 코드입니다.


지표를 파일로 업로드하는 것이 좋습니다. 아무도 조각을 하나의 파일에 붙이지 않을 것입니다.
 
Andreev :

이 옵션은 다음과 같은 오류를 제공합니다.

 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);


이 같은.
 
Vinin :

이 같은

오류 메시지를 표시합니다.


2011.07.19 18:56:15 2011.07.18 20:00 EURUSD,M1 반환: OrderSend 오류 4062
2011.07.19 18:56:15 2011.07.18 20:00 반환: OrderSend 함수 에 대한 주석 매개변수는 문자열이어야 합니다.

 
alexshell :

이 같은.

어떤 이유로 동일한 오류가 발생합니다. 주문에서 Tim 기능을 제거하면 작동하지만 일부 거래는 23.00 이후에 열립니다. 제한하기 위해 무엇을 생각할 수 있습니까?
 
Andreev :

오류 메시지를 표시합니다.


2011.07.19 18:56:15 2011.07.18 20:00 EURUSD,M1 반환: OrderSend 오류 4062
2011.07.19 18:56:15 2011.07.18 20:00 반환: OrderSend 함수에 대한 주석 매개변수는 문자열이어야 합니다.


죄송합니다. 확인하지 않고 버전을 수정했습니다.

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


죄송합니다. 확인하지 않고 버전을 수정했습니다.


정말 감사합니다!!! 작동합니다 :)
 

좋은 저녁이에요!! 알림 기능에 대해 질문이 있습니다. 여기 큰 중간 조각과 많은 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 );
  }
//+------------------------------------------------------------------+
경고는 가격 경고 ( "price" , price)를 기록해야 합니다. 1.4825라고 가정하고 그는 다음과 같이 씁니다. 변수는 정상입니다. 다음은 무엇!!

경고 ( "가격 +otstup*Point" ,가격 +otstup* Point ); 이것은 가격 + 들여쓰기(20pp) * 포인트(0.0001)를 곱한 값입니다. total-1.4805는 (!!!!)이어야 하지만 현재 0.002를 씁니다.

등. 여기: 이해하는 방법? 수식의 구문은 무엇입니까?