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

 
그리고 서포터들에게 뭔가 문제가 있다면!!!
 
Dimka-novitsek :

감사해요!! 정상화 들어갔는데... 도대체 무슨 일이야!!!!!! 그냥 머리가 화끈거려서.. 학교기하학보다 쉬울듯



예, ASK 및 BID에는 정규화가 필요하지 않으며 Sleep (Na1sec-5sec)이 필요합니다.
 

이해했다! 그리고 무슨 일이야! 바로 지금, 나는 공식화 할 것입니다 ... 참여와 도움을 주신 모든 분들께 감사드립니다. 나는 아무것도 이해하지 못한다. 위의 코드에 주의를 기울이십시오. 거기 조건

 if (strela1<strela2&&SELL== 0 &&BUY!= 0
  ){ udalenie ();

If..and if..and 구매 주문이 없는 경우. 그들은 0이 아닙니다. 스크린샷에서 볼 수 있듯이 코드가 방금 작동하기 시작했으며 구매 주문이 없습니다! 글쎄, 확실히 아니야! 그리고 조건은 충족되지만 그렇지 않아야 합니다!

이것은 전문가 창에서 zzzzz 인쇄 메시지를 볼 수 있습니다. 그건 그렇고, 조건이 충족되면 주문이 완료되었습니다. 즉, 배치되었습니다!

내가 조건을 잘못 쓴 것이 밝혀졌습니다 ??

물론 다음 코드 조건은 즉시 발생합니다.

 if (strela1<strela2&&BUY== 0 &&SELL== 0 ){

그것이 이러한 상황에서 작동했어야 하는 것입니다!

무슨일이야!!!??

논리적 조건이 잘못된 것은???

도대체 어떻게 둘이 동시에 처형되는 걸까요??

 

보는데 이해가 안간다... 이 두가지 조건이 한번에 충족!! 내가 양인가봐.. 근데 이해가 안가네. 말도 안되는 소리야. if 연산자를 지정하는 방법을 잊은 것 같습니다!

젠장, 모든 코드

 //+------------------------------------------------------------------+
//|                                                     советник.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"

#include <WinUser32.mqh>
   extern double   lot= 1 ;                          
   extern int taymfreym= 0 ;                           
   extern double   stoplos= 200 ;                          
   extern double   takeprofit= 500 ; 
   extern double   magicnumber= 350 ;                          


void BreakPoint(){ //if (!IsVisualMode()) return(0);
keybd_event( 19 , 0 , 0 , 0 );
Sleep ( 10 );
keybd_event( 19 , 0 , 2 , 0 );}

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   Print (   "  НачалоНачал " ); 
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int i;
int start()
  { Print (   "  Начало " ); 
//----
for ( int A= 0 ; A< 100 ; A++){
            
             double strela1 = iCustom ( NULL , taymfreym, "индикатор" , 2 , A);
             double strela2 = iCustom ( NULL , taymfreym, "индикатор" , 3 , A);
            
             int BUY= 0 ,SELL= 0 ; int ticket; 
             Print ( A,   "  strela1 " , strela1 , "    strela2  " , strela2 ); 
            
    
            
             for ( int i= 1 ; i<= OrdersTotal (); i++) {  
             if ( OrderSelect (i- 1 ,SELECT_BY_POS)==true) // Если есть следующий
        {                                       // Анализ ордеров:
         if ( OrderSymbol ()!= Symbol ( ) ) continue ;       // Не наш фин. инструм
         if ( OrderMagicNumber ( ) !=magicnumber) continue ;
         if ( OrderType ()== 0 ){ BUY++; ticket= OrderTicket ( ); Print ( "BUY++   " , BUY  , "  ticket " ,ticket);}
         if ( OrderType ()== 1 ) {SELL++;ticket= OrderTicket ( ); Print ( "SELL++   " , SELL  , "  ticket " ,ticket);}    } }
         
  
   if (strela1<strela2&&SELL== 0 &&BUY!= 0
  ){ udalenie ();
              
   OrderSend ( Symbol ( ), OP_BUY, lot, NormalizeDouble (Ask, Digits ), 3 * Point , NormalizeDouble ( Bid- (stoplos* Point ), Digits ),   NormalizeDouble ( Ask+( takeprofit* Point ), Digits ), NULL , magicnumber, 0 , CLR_NONE );           
       Print ( "strela1<strela2&&BUY==0&&SELL!=0 " , GetLastError ()); }
            
   if (strela1>strela2){ udalenie ();
                
   OrderSend ( Symbol ( ), OP_SELL, lot, NormalizeDouble ( Bid, Digits ), 3 * Point , NormalizeDouble ( Ask+ (stoplos* Point ), Digits ),   NormalizeDouble ( Ask-( takeprofit* Point ), Digits ), NULL , magicnumber, 0 , CLR_NONE ) ; 
         Print ( "strela1>strela2&&SELL==0&&BUY!=0 " , GetLastError ()); }
      
     if (strela1<strela2&&BUY== 0 &&SELL== 0 ){    
            
           OrderSend ( Symbol ( ), OP_BUY, lot, NormalizeDouble (Ask, Digits ), 3 * Point , NormalizeDouble ( Bid- (stoplos* Point ), Digits ),   NormalizeDouble ( Ask+( takeprofit* Point ), Digits ), NULL , magicnumber, 0 , CLR_NONE );  
             Print ( "strela1>strela2&&BUY==0&&SELL==0   " , GetLastError ()  , "  Ask " ,Ask, "   stoplos= NormalizeDouble( Bid- (stoplos*Point),Digits)  " ,
 NormalizeDouble ( Bid- (stoplos* Point ), Digits ), "    takeprofit= NormalizeDouble( Ask+( takeprofit*Point),Digits) " , NormalizeDouble ( Ask+( takeprofit* Point ), Digits )); }
           
   if (strela1>strela2&&BUY== 0 &&SELL== 0 ){  
   
             OrderSend ( Symbol ( ), OP_SELL, lot, NormalizeDouble ( Bid, Digits ), 3 * Point , NormalizeDouble ( Ask+ (stoplos* Point ), Digits ),   NormalizeDouble ( Ask-( takeprofit* Point ), Digits ), NULL , magicnumber, 0 , CLR_NONE ) ; 
             Print ( "strela1>strela2&& OP_SELL  " , GetLastError ()   , "  Bid " ,Bid, "    stoplos=   NormalizeDouble( Ask- (stoplos*Point),Digits)  " ,
 NormalizeDouble ( Ask- (stoplos* Point ), Digits ), "    takeprofit= NormalizeDouble( Bid+( takeprofit*Point),Digits) " , NormalizeDouble (Ask+( takeprofit* Point ), Digits ));
             Print ( "strela1>strela2&& OP_SELL   " , GetLastError ()  , " (stoplos*Point) " ,(stoplos* Point ), "   Point  " , Point , "   Digits  " , Digits ); }
               
    
   
   
     } Print (   "  Конец " ); BreakPoint();     
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+

void udalenie (){ int total = OrdersTotal ();
   for (i=total- 1 ;i>= 0 ;i--)
    {
     OrderSelect (i, SELECT_BY_POS);
   int type   = OrderType ();   bool result = false;
     switch (type)
          { 
           case OP_BUY       : result = OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_BID), 3 * Point , CLR_NONE ); break ;
           case OP_SELL      : result = OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_ASK), 3 * Point , CLR_NONE ); break ; 
          }
     if (!result)
      {
       int error =   GetLastError (); 
       string errorcomment = "Неудалось закрыть ордер №" + OrderTicket () + " " + Symbol () + " " + OrderType () + " " + error; 
       Print (errorcomment);
      }  
    }       
   }

설명을 쉽게 하기 위함입니다. BUY++, SELL++ 변수에서 오픈 실제 주문과 주문에 대해 별도로 설정합니다.

또한 이러한 변수는 논리적 조건에 참여합니다. 나머지는 누가 알지만 질문에 중요하지 않은 것 같습니다.

일반적으로 인쇄물에서 본 것처럼 명확하게 보호합니다.

 
aedu :
'원클릭'으로 작업할 어드바이저 다운받아서 컴파일-오류는 없지만 구석에 있는 '얼굴' 빼고는 아무것도 표시되지 않습니다. 도와주세요!!!!!!!!!!!!!
다운로드한 Expert Advisor는 작업을 위해 Expert Advisor에 대한 명령이 포함 된 스크립트와 같은 특정 파일 "McTrader_"+Symbol()+"_command.dat"가 필요합니다. 그는 그것을 스스로 만들지 않습니다. 따라서 자세한 내용은 개발자에게 문의하십시오.
 
Dimka-novitsek :

보는데 이해가 안간다... 이 두가지 조건이 한번에 충족!! 내가 양인가봐.. 근데 이해가 안가네. 말도 안되는 소리야. if 연산자를 지정하는 방법을 잊은 것 같습니다!

젠장, 모든 코드

설명을 쉽게 하기 위함입니다. BUY++, SELL++ 변수에서 오픈 실제 주문과 주문에 대해 별도로 설정합니다.

또한 이러한 변수는 논리적 조건에 참여합니다. 나머지는 누가 알지만 질문에 중요하지 않은 것 같습니다.

일반적으로 인쇄물에서 본 것처럼 명확하게 보호합니다.

"지표"가 제공되지 않습니까?

비록 그것이 필요하지 않지만

 

그리고 Cossack은 잘못 처리되었습니다. 그는 왜 그렇게 흥분 했습니까?
 
Dimka-novitsek :

보는데 이해가 안간다... 이 두가지 조건을 한번에 충족!! 내가 양인가봐.. 근데 이해가 안가네. 말도 안되는 소리야. if 연산자를 지정하는 방법을 잊은 것 같습니다!

젠장, 모든 코드

설명을 쉽게 하기 위함입니다. BUY++, SELL++ 변수에서 오픈 실제 주문과 주문에 대해 별도로 설정합니다.

또한 이러한 변수는 논리적 조건에 참여합니다. 나머지는 누가 알지만 질문에 중요하지 않은 것 같습니다.

일반적으로 인쇄물에서 본 것처럼 명확하게 보호합니다.

논리적 및 기술적 오류의 무리. 주문을 여는 논리는 추적할 수 없습니다(내 상상력을 사용해야 했습니다). 자신의 서투른 코드를 선택하거나("정확해질 때까지") 다른 사람의 코드를 배워야 합니다. 나는 당신을 위해 당신의 코드를 만들었습니다. - 도움이 될까요???

PS 이미 말했듯이 테스터의 가격을 정상화할 필요가 없습니다. 그러나 거래 주문 을 실행할 때 "잘못된 가격" 오류가 발생하는 가능한 이유 중 하나는 3 * Point(int로 변환할 때) = 0인 Slippage일 수 있습니다.

파일:
rcjipewc.mq4  6 kb
 
감사해요!!!!!
 
san44es :

사람들, 말해!

백그라운드 기간의 5번째 막대의 저가를 계산하는 사용자 지정 기능이 있습니다. 특정 기간의 가격을 계산하게 하려면 어떻게 해야 합니까?

아이로우