주문 닫기가 작동하지 않음 - 페이지 4

 

안녕,

다음을 컴파일하면 다음과 같은 오류가 발생합니다. 어떤 부분이 잘못되었는지 알 수 있습니까?


'postin forum.mq4'      postin forum.mq4        1       1
',' - unexpected token  postin forum.mq4        59      53
expression has no effect        postin forum.mq4        59      54
1 error(s), 1 warning(s)                2       2
//+------------------------------------------------------------------+
//|                                                       chuale.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.abc.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link        "http://www.abc.com"
#property version    "1.00"
#property strict

extern double    TakeProfit= 500 ;
extern double    Lots= 0.1 ;
extern double    StopLoss= 300 ;

double      bar1;
double      bar2;
double      bar3;
int         total,ticket;
//datetime   previousTime; 

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
  
//---
   
//---
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//---
   
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
int start()
  {

  total= OrdersTotal ();
      bar1=( iClose ( Symbol (), PERIOD_M1 , 2 )- iClose ( Symbol (), PERIOD_M1 , 3 ))* 100 ;
      bar2=( iClose ( Symbol (), PERIOD_M1 , 1 )- iClose ( Symbol (), PERIOD_M1 , 2 ))* 100 ;
      bar3=( iClose ( Symbol (), PERIOD_M1 , 0 )- iClose ( Symbol (), PERIOD_M1 , 1 ))* 100 ;
     Comment ( "Bar1=" + DoubleToString (bar1, Digits )+ "\n" +
             "Bar2=" + DoubleToString (bar2, Digits )+ "\n" +
             "Bar3=" + DoubleToString (bar3, Digits )+ "\n"
             );
                         
   if (total> 0 )
   {
   OrderSelect ( 0 , SELECT_BY_POS );
   if (bar3<- 2 ) OrderClose ( OrderTicket (),Lots, Bid , 3 ),Green;
   if (bar3> 2 ) OrderClose ( OrderTicket (), Lots, Ask , 3 ,Red);
   }
   //if(Time[0]==previousTime) return(0);
   //previousTime=Time[0];
   if (total< 1 )
     {
       if (bar3> 1 )
      {  
      ticket= OrderSend ( Symbol (), OP_BUY ,Lots, Ask , 3 , Ask -StopLoss* Point , Ask +TakeProfit* Point , "Chua EA" , 12345 , 0 ,Green);
       //if(ticket<0)Print("Error OP_BUY order failed, error:"+GetLasterror());
       return ( 0 );
      }
      
       if (bar3<- 1 )
      {
      ticket= OrderSend ( Symbol (), OP_SELL ,Lots, Bid , 3 , Bid +StopLoss* Point , Bid +-TakeProfit* Point , "Chua EA" , 12345 , 0 ,Red);
       //if(ticket<0)Print("Error OP_SELL order failed, error:"+GetLasterror());
       return ( 0 );
      }
     }
   
   return ( 0 );
  }
//+------------------------------------------------------------------+
 
두 줄을 비교하십시오.
   if (bar3<- 2 ) OrderClose ( OrderTicket (),Lots, Bid , 3 ),Green;
   if (bar3> 2 )  OrderClose ( OrderTicket (),Lots, Ask , 3 ,Red);
 

오류 보고서는 오류가 있는 위치를 알려줍니다.

',' - forum.mq4 59 에 게시된 예기치 않은 토큰 53

오류를 두 번 클릭하면 커서가 문제로 바로 이동합니다.

 

안녕하세요 검라이님


덕분에 해결했습니다. 실수로 삽입한 괄호에서 오류가 발생합니다.

 

WHRoeder님, 감사합니다.

~이다

 

안녕하세요 쓰델님

Time[0]은 막대 0의 시간을 나타냅니까? 시간[1], 시간[2] 등이 있습니까? 구글링을 해보았지만 인터넷에 정보가 많지 않았습니다. 또한 이 EA를 두 개의 통화 쌍 에 첨부하면 OrderSelect가 차트 자체의 주문만 선택하거나 터미널의 모든 주문을 선택한다는 의미입니까?

 

안녕하세요 쓰델님


"if(ticket<0)Print("Error OP_BUY order failed, error:"+GetLastError()) 코딩에 대해 "'숫자'에서 '문자열' postin forum.mq4 69 61"로의 암시적 변환"이라는 경고 메시지가 표시되는 이유 ;"?

 
chuale :

Time[0]은 막대 0의 시간을 나타냅니까? 시간[1], 시간[2] 등이 있습니까?


추알레 :

구글링을 해보았지만 인터넷에 정보가 많지 않았습니다.

http://bit.ly/1fJi4XA

추알레 :

또한 이 EA를 두 개의 통화 쌍에 첨부하면 OrderSelect가 차트 자체의 주문만 선택하거나 터미널의 모든 주문을 선택한다는 의미입니까?

귀하의 코드에 따라 다릅니다

 
감사합니다
 
chuale :

안녕하세요 쓰델님


"if(ticket<0)Print("Error OP_BUY order failed, error:"+GetLastError()) 코딩에 대해 "'숫자'에서 '문자열' postin forum.mq4 69 61"로의 암시적 변환"이라는 경고 메시지가 표시되는 이유 ;"?


"'숫자'에서 '문자열'로의 암시적 변환"은 큰 루프가 있을 때 골치 아픈 문제가 될 수 있습니다.

오류 보고서에서 많은 줄을 스크롤해야 함을 의미합니다.

귀하의 경우 GetLastError()는 정수 코드이므로 print 문에 대한 문자열로 변환된다는 경고입니다.

문제가 아니라고 생각한다면 (문자열)을 추가하여 이러한 성가신 경고를 중지할 수 있습니다.

if(ticket<0)   Print("Error OP_BUY order failed, error:" + (string) GetLastError());

덧붙여서, 당신이 몰랐다면-

나는 보통 이것을 Externs/Inputs 뒤에 배치합니다.

 #include <stdlib.mqh>

그런 다음 사용할 수 있습니다.

 if (ticket< 0 )   Print ( "Error OP_BUY order failed, error: " + ErrorDescription(GetLastError() ) );

코드뿐만 아니라 오류에 대한 설명이 인쇄되도록