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

 
Qra :

모두에게 좋은 하루!

저는 첫 번째 봇을 작성하는 동시에 MQL 언어에 익숙해지고 있습니다. 테스트하는 동안 다음과 같은 문제가 발생했습니다.

OP_BUYSTOP 주문은 발주 직후 발생하지만 차트상으로는 가격이 목표치에 도달하지 않음(아래 참조)

아니요. 시간 유형 주문하다 용량 가격 S/L T/P 이익 균형
하나 2011.09.19 02:10 구매 중지 하나 0.01 76.935 76.735 77.135
2 2011.09.19 02:10 구입 하나 0.01 76.935 76.735 77.135

USD/JPY,M5(비주얼)

날짜 2011.09.19

시간 02:15

열려 있는 76.903

높은 76.909

낮은 76.890

닫다 76.890

용량 66

모든 진드기를 테스트합니다.

OP_BUYSTOP 주문을 잘못 이해한 것일까요? 가격이 일정 금액을 넘으면 사야겠죠?

주문을 하는 소스 코드 조각

int ticket=OrderSend(Symb, OP_BUYSTOP, Lot, Price, 0, SL, TP);

모든 분들께 미리 감사드립니다!

캔들스틱 차트에서 모든 가격은 Bid이며 모든 구매 주문 은 Ask 가격으로 실행됩니다.
 
PapaYozh :
캔들스틱 차트에서 모든 가격은 Bid이며 모든 구매 주문은 Ask 가격으로 실행됩니다.

고맙습니다!

 
안녕하세요!

현재 가격으로 수준이 깨진 경우 보류 중인 수평선을 삭제하고 싶습니다. 다른 방법으로, OBJ_HLINE 생성 순간 이후에 레벨이 초과되거나 "낮아진" 경우라고 말할 수 있습니다.

도움을 주셔서 감사합니다. 알려주세요. 알려진 기간 동안 레벨 보존 상태를 올바르게 모니터링하는 방법은 무엇입니까?
 //----------------------------------------------------------------------+ 
//  Удаление  OBJ_HLINE при пробитии его уровня   /Red-Up/Blue-Down|    |
//----------------------------------------------------------------------+   
void DelHLine( string nm= "" )  
   {
     int obj_total= ObjectsTotal ();

       for ( int i= 1 ;i<obj_total;i++) 
      { 
        nm= ObjectName (i);
         if (nm== ObjectName (i)&& ObjectType (nm)== OBJ_HLINE )
         {
           color     cl     = ObjectGet (nm, OBJPROP_COLOR );
           double    pl     = ObjectGet (nm,OBJPROP_PRICE1);
           datetime timeSet= ObjectGet (nm,OBJPROP_TIME1);
           int       shift  = iBarShift ( NULL , 0 ,timeSet);
   
           if ((cl== Red   && pl<High[ iHighest ( NULL , 0 ,MODE_HIGH,shift, 1 )])||
             (cl== Blue && pl>Low [ iLowest ( NULL , 0 ,MODE_LOW, shift, 1 )]) ) ObjectDelete (nm); 
         } 
      }
     return ( 0 );  
  }
//+------------------------------------------------------------------+
 

안녕하세요! 도와주세요.

이 스크립트가 Excel의 데이터를 열로 표시하지 않는 이유를 이해할 수 없습니다.

엑셀 실행시 데이터는 없고 테이블 헤더만 있습니다.

Excel'em에서 구분 기호를 인식하지 못하는 이유를 이해하는 데 도움이 됩니다.

파일:
writefile.mq4  3 kb
 

프로그래밍을 시작하다보니 질문이 많네요 많은 관심 부탁드립니다!

스크립트가 작성되었습니다 - 간단한 기능을 수행하는 NewScript - 차트의 막대로 OHLC 가격을 표시합니다...

문제는 BARS가 정확히 현재 차트의 막대 수라면 왜 화면의 막대 수(약 200개)가 EA 로그에 표시되고 로그 로그에 2000개 이상 표시되는 것입니까? ?

고맙습니다!

파일:
 
Vinin :


약간의 수정


 double Hi ( int pos= 0 ) //создали Hi, зависящую от pos
{ 
   int i=pos; //присваиваем "i" значение от "pos", то есть i равно pos
   double H= 0 ;
   while (i<=pos+ 10 ) //как она может быть меньше, если она равна?
  {
     if (H< iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN,i))  //это мне вообще не понятно... то есть если значение "Н" будет меньше, то присваиваем...  
      H= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN,i); //то есть он определит мне наинизший, но не наивысший бар


    i++; //ну тут мы добавляем к "i" плюс 1
  }
   return (H); //возвращаем Hi в самое начало
}

죄송합니다, 기능을 이해할 수 없습니다 ...

 
CLAIN :



가장 쉬운 옵션

 double Hi ( int pos= 0 ) 
{ 
   double H[ 10 ]; // Объявили массив
  
   for (i=pos+ 1 ;i<=pos+ 10 ;i++) // формируем массив
  {
    H[i]= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN,i);
  }
   int MaxId=ArrayMaximem(H); ищем индекс максимального элемента
   return (H[MaxId]); // возвращаем максимальный элемент
}
 

안녕하세요!

잠시 동안 Expert Advisor를 중지 하는 코드를 작성하는 데 도움을 주시겠습니까?

이렇게 코드를 작성했습니다.

정수() {
문자열 OrderStop="OrderStop"+ 기호();
OrderSig = GlobalVariableGet(주문 중지);
// 인쇄(주문서);

반환(0);
}

정수 초기화() {
반환(0);
}

정수 시작() {
문자열 OrderStop="OrderStop"+ 기호();
OrderSig = GlobalVariableGet(OrderStop);

if (OrderSig==1)return(0);

또 다른 {

EA 본체(코드)

}

리턴(0);

}

예고편에서 이 코드는 작동하지만 터미널을 컴파일하거나 다시 시작할 때

고문이 작업을 시작하고(거래를 시작함) 다시 거래하지 않습니다.

무엇이 될 수 있습니까?

또는 다른 옵션을 제안하십시오.

 
alega :

또는 다른 옵션을 제안하십시오.

f번째 사용:

   Sleep ( 3000 );
 
감사합니다.