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

 

고마워, 나는이 코드를 고문에 삽입했는데 컴파일 할 때 '(' - 함수 정의가 예기치 않게 나타납니다. bool ExistOrders 후, 어딘가에 추가 브래킷이나 뭔가...

for (int k=0;k<OrdersTotal();k++)//모든 미결 주문 중에서 보기
{
주문 선택(k,SELECT_BY_POS,MODE_TRADES);
if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,"",123,0,Red);
부울 ExistOrders(문자열 sy="", int op=-1, int mn=123)
{
정수 i, k=OrdersTotal(), ty;
if (sy=="0") sy=Symbol();
(i=0; i<k; i++)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
ty=주문 유형();
만약 (ty<6)
{
if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op))
{
if (mn<0 || OrderMagicNumber()==mn) return(True);
}}}} 반환(거짓);
}
//----
리턴(0);
}
 
Graall :

감사합니다, 이 코드를 어드바이저에 삽입했습니다. 컴파일할 때 '(' - 예기치 않은 함수 정의 bool ExistOrders 후, 어딘가에 추가 브래킷이나 뭔가...


시작 함수에서 ExistOrders 함수를 파생시킵니다.
 int start()
{
.....
for ( int k= 0 ;k< OrdersTotal ();k++) //Производим просмотр среди всех открытых ордеров
   {
     OrderSelect (k,SELECT_BY_POS,MODE_TRADES);
     if (!ExistOrders( Symbol (), OP_SELLLIMIT, Magic) )  
     OrderSend ( Symbol (),OP_SELLLIMIT,Lots,Ask+(Shag/ 0.2 )* Point , 3 , 0 , 0 , "" , 123 , 0 ,Red);
}
   return ( 0 );
 }

     bool ExistOrders( string sy= "" , int op=- 1 , int mn= 123 ) 
     {
       int i, k= OrdersTotal (), ty; 
       if (sy== "0" ) sy= Symbol ();
       for (i= 0 ; i<k; i++) 
      {
       if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) 
       {
        ty=OrderType();
         if (ty< 6 ) 
        {
           if ((OrderSymbol()==sy || sy== "" ) && (op< 0 || ty==op)) 
         {
           if (mn< 0 || OrderMagicNumber()==mn) return (True);
      }}}}   return (False);
          }
 
 

예, ExistOrders 함수가 사용자 정의 함수라는 것을 이해 합니다. 시작 함수에서 제거했습니다. 오류는 동일하며 어드바이저의 첫 번째 부분에서 무언가와 싸우고 전체를 게시합니다.


//+----------------------------------------------- --------------------+

//| 1.mq4 |
//| 올렉 2013 |
//| |
//+----------------------------------------------- --------------------+
#재산권 "Oleg 2013"
#define 매직 123

//--- 입력 매개변수
외부 정수 TakeProfit = 100;
extern 이중 랏 = 0.1;
extern int 단계 = 100;
끈끈한;
정수형;
정수 연산;
intmn;
정수 k;
정수 나;
//------------------------------------------------ --------------------------------------------------
정수 시작()
{
// 첫 번째 null 요소 검색
정수 합계=OrdersTotal();
경우 (총 == 0)
{
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,"",123,0,Red);
OrderSend(Symbol(),OP_BUYLIMIT,Lots,Ask-(Shag/0.2)*Point,3,0,0,"",123,0,Blue);
for (int i=0;i<OrdersTotal();i++)//모든 미결 주문 중에서 보기
{
주문 선택(i,SELECT_BY_POS,MODE_TRADES);
if ( OrderType()==OP_SELLLIMIT)
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), Ask-(TakeProfit/0.2)*포인트, 0);
if ( OrderType()==OP_BUYLIMIT)
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), Ask+(TakeProfit/0.2)*포인트, 0);
}
}
for (int k=0;k<OrdersTotal();k++)//모든 미결 주문 중에서 보기
{
주문 선택(k,SELECT_BY_POS,MODE_TRADES);
if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,"",123,0,Red);

//----
리턴(0);
}
//+----------------------------------------------- --------------------+
부울 ExistOrders(문자열 sy="", int op=-1, int mn=123)
{
정수 i, k=OrdersTotal(), ty;
if (sy=="0") sy=Symbol();
(i=0; i<k; i++)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
ty=주문 유형();
만약 (ty<6)
{
if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op))
{
if (mn<0 || OrderMagicNumber()==mn) return(True);
}}}} 반환(거짓);
}
 
Graall :



대괄호 {}의 쌍을 확인하십시오(주의 깊게). 오류는 start() 함수에 하나 이상의 닫는 함수가 없음을 의미합니다.
 
alsu :

대괄호 {}의 쌍을 확인하십시오(주의 깊게). 오류는 start() 함수에 하나 이상의 닫는 함수가 없음을 의미합니다.


정확히 후에  

for (int k=0;k<OrdersTotal();k++)//모든 미결 주문 중에서 보기

{
주문 선택(k,SELECT_BY_POS, MODE_TRADES );
if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )

OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,"",123,0,Red);

놓쳤다 } 감사합니다!

 
안녕하세요, 제 터미널에서 시간이 실제 시간과 일치하지 않습니다. 이제 M5 촛불 위로 마우스를 가져가면 18.45가 표시되지만 실제로 우크라이나에서는 19.45입니다. 시간을 어떻게 변경할 수 있습니까?
 
sanktum :
안녕하세요, 제 터미널에서 시간이 실제 시간과 일치하지 않습니다. 이제 M5 촛불 위로 마우스를 가져가면 18.45가 표시되지만 실제로 우크라이나에서는 19.45입니다. 시간을 어떻게 변경할 수 있습니까?

안 돼요. 촛불 - 서버 시간.

 

안녕하세요.

나는 다음과 같은 방식으로 새 막대 를 열 때마다 EA에서 파일로 씁니다.

 int handle= FileOpen (Symbol1+Symbol2+ ".csv" , FILE_WRITE | FILE_READ | FILE_CSV );
       if (handle> 0 )
        {
         FileSeek (handle, 0 , SEEK_END );
         FileWrite (handle, TimeToString ( TimeCurrent (),TIME_DATE|TIME_MINUTES), DoubleToString (Pr1, 2 ), DoubleToString (Pr2, 2 ), DoubleToString (Pr3, 2 ), DoubleToString (Pr4, 2 ));
         FileClose (handle);
        }

표시기는 이 데이터를 읽고 기록된 시간 간격에 대한 차트를 작성해야 합니다.

이것을 구현하는 방법을 설명해 주시겠습니까? 적어도 일반적으로.

 

MT4(버전: 4.00 Build 451)를 설치했고 Experts Logs 폴더 에 터미널 이 설치된 날부터 날짜가 지정된 파일이 하나만 있음을 확인했습니다. 13일. 이미 여러 번 플랫폼을 켜고 끄긴 했지만 더 이상 로그 파일이 없습니다.

이 현상에 대한 의견을 보내주시면 감사하겠습니다.

 
Geowind64 :

MT4(버전: 4.00 빌드 451)를 설치하고 Experts Logs 폴더에 터미널이 설치된 날부터 날짜가 지정된 파일이 하나만 있음을 확인했습니다. 13일. 이미 여러 번 플랫폼을 켜고 끄긴 했지만 더 이상 로그 파일이 없습니다.

이 현상에 대한 의견을 보내주시면 감사하겠습니다.


적어도 하나의 전문가/지표/스크립트를 실행해야 하며 이 폴더에 씁니다.
사유: