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

 
hoz :

이 빌어먹을 오류가 발생했습니다. 사실 여기에는 전혀 논리가 없습니다. https://book.mql4.com/en/appendix/limits 의 요구 사항에 따라 보류 중인 주문을 열려면 시작 가격이 Bid(매도)보다 낮거나 Ask(구매)보다 높아야 합니다. 나는 요구 사항에 따라 모든 것을합니다.

주기적으로 0130 오류가 있습니다. 130번째 에러는 잘못된 스톱의 에러인데, 수정시 발생할 수 있고, 주문을 열때가 아닐 수 있습니다.

화면에서 pr 함수를 사용하여 화면에 표시되는 상황과 인쇄물.

이 잼을 없애는 방법을 알려주세요. 나는 이미 이 오류에 지쳤습니다. 논리적으로, 그녀는 주제에서 전혀 벗어났습니다.

Victor는 위와 아래를 준수하는 것 외에도 예방 간격을 사용해야하기 때문에 여기에 있습니다. 주문이 전송되는 동안 가격이 정지하지 않아 금지 구역으로 발을 딛거나 발을 내딛는 것으로 나타났습니다! 수정과 더 많은 미끄러짐과 함께 삽입하면 모든 것이 잘 될 것입니다! 실수 없이 Real에서 작업합니다! 행운을 빕니다!
 
borilunad :
Victor는 위와 아래를 준수하는 것 외에도 예방 간격을 사용해야하기 때문에 여기에 있습니다. 주문이 전송되는 동안 가격이 정지하지 않아 금지 구역으로 발을 딛거나 발을 내딛는 것으로 나타났습니다! 수정과 더 많은 미끄러짐과 함께 삽입하면 모든 것이 잘 될 것입니다! 실수 없이 Real에서 작업합니다! 행운을 빕니다!


보리스, 그래서 미끄러짐은 이미 3이고, 이것은 내가 이해하는 것처럼 3점입니다. 그럼 어디가 더 많습니까?

다음과 같이 말합니까?

 bool OpenBuy()
{
   int ticket = - 1 ;
   double OOP = High[ 1 ] + i_thresholdToUp * pt;
   pr ( "ND(OOP) = " + ND(OOP) + " ; Ask = " + Ask);
   pr ( "g_stopLevel = " + g_stopLevel);

   if ((ND(OOP) - g_stopLevel)> Ask)
       ticket = OrderSend ( Symbol (), OP_BUYSTOP, 0.1 , ND(OOP), 3 , 0 , 0 , NULL , i_magic, 0 , CLR_NONE );
   else pr ( "Ордер послать не удалось " + GetLastError ());
   
   if (ticket > 0 )
   {
 //      lastBarTime = Time[0];               // На текущем баре все необходимые действия..
                                             // .. успешно выполнены
       return ( true );
   }
}

여기에 불필요한 기능을 넣지 않도록 어떻게 하면 더 능숙하게 구현할 수 있을까 생각합니다.

 

호즈, 와이 여기서 불을 끈 상태에서 더 짧게 하면 어떨까 하는 생각이 들었다. 참조: 변수를 넣으면

 bool _if=(( 2 *trend- 1 )*Δ≥ const ); //аналогично _if=(±Δ≥const)

cnt=cnt+step이 있습니다. 여기서

 if (_if) step= 1 ;
} else { step=-cnt;
}

그러나 1=cnt/cnt, a -cnt=cnt/(-1), 차이는 분모에만 있습니다. 이제 x^0=1, x^1=x, 즉 표시기에 부울 변수 _if를 넣을 수 있습니다. 단계= cnt/a*(cnt^_if) ; 어디

 if (_if) a=1;
} else { a=-1;
}

그러나 ±a는 2*_if-1과 같습니다. 즉,

 bool _if=(( 2 *trend- 1 )*Δ≥ const ); //аналогично _if=(±Δ≥const)
int step=cnt/( 2 *_if- 1 )*(cnt^_if); //принимает два значения: 1 и -cnt
cnt=cnt+step;

또는 단순화

 bool _if=(( 2 *trend- 1 )*Δ≥ const ); cnt=cnt+cnt/(( 2 *_if- 1 )*(cnt^_if));
 
hoz :


Boris, 그래서 미끄러지는 비용은 어쨌든 3입니다. 이것은 제가 이해하는 바와 같이 3점입니다. 그럼 어디가 더 많습니까?

다음과 같이 말합니까?

여기에 불필요한 기능을 넣지 않도록 어떻게 하면 더 능숙하게 구현할 수 있을까 생각합니다.

5에 30이 필요한 경우 4에 3이 미끄러지기를 바랍니다!
 

얘들 아, 시장이 열리고 시장이 닫혔다 는 메시지를 표시하는 스크립트를 말해봐.

즉, 월요일 0.00.01이 오면 시장이 열린다는 메시지를 보낸 다음 "시장이 열려 있습니다"라는 메시지가 표시되며 시장이 닫히는 것과 유사합니다.

스크립트를 작성했지만 어떤 이유로 작동하지 않습니다((이해할 수 있도록 도와주세요.

 // определяем начало и конец торгов.
       // начало торгов в понедельник в 0.00.01
      
       if (DayOfWeek()== 1 && Hour()== 0 && Minute()== 0 && Seconds()== 01 )
      {
         Alert ( "Рынок открылся." );
      }
       // конец торгов в Пятницу в 23.59.59
       if (DayOfWeek()== 5 && Hour()== 23 && Minute()== 59 && Seconds()== 59 )
      {
         Alert ( "Пятница, Рынок закрылся." );
      }

 

특정 시점에 BUY STOP 및 CELL STOP 보류 주문을 동시에 배치할 수 있는 로봇이 있습니까? 그 시점의 가격에서 최소 트리거 단계가 있습니다. 뉴스에서 간단히. 내 손으로 할 수 없습니다.
 
hoz :

이 빌어먹을 오류가 발생했습니다. 사실 여기에는 논리가 전혀 없습니다. https://book.mql4.com/en/appendix/limits 의 요구 사항에 따라 보류 중인 주문을 열려면 시작 가격이 Bid(매도)보다 낮거나 Ask(구매)보다 높아야 합니다. 나는 요구 사항에 따라 모든 것을합니다.

주기적으로 0130 오류가 있습니다. 130번째 에러는 잘못된 스톱의 에러인데, 수정시 발생할 수 있고, 주문을 열때가 아닐 수 있습니다.

화면에서 pr 함수를 사용하여 화면에 표시되는 상황과 인쇄물.

이 잼을 없애는 방법을 알려주세요. 나는 이미 이 오류에 지쳤습니다. 논리적으로, 그녀는 주제에서 전혀 벗어났습니다.

130번째 오류가 반드시 중지 명령은 아닙니다. 이것은 또한 적어도 int MarketInfo(Symbol(), MODE_STOPLEVEL)의 거리에서 대기 주문을 하기 위한 거리입니다.
 
borilunad :
5에 30이 필요한 경우 4에 3이 미끄러지기를 바랍니다!

따라서 테스터에는 미끄러짐이 전혀 없습니다. 그것에 관해서는 ... 수정 30 .

아트미디어70 :
130번째 오류가 반드시 중지 주문은 아닙니다. 이것은 또한 적어도 int MarketInfo(Symbol(), MODE_STOPLEVEL)의 거리에서 대기 주문을 하기 위한 거리입니다.

잘:

 //+-------------------------------------------------------------------------------------+
//| Открытие длинной позиции                                                            |
//+-------------------------------------------------------------------------------------+
bool OpenBuy()
{
   int ticket = - 1 ;
   double OOP = High[ 1 ] + i_thresholdToUp * pt;
   pr ( "ND(OOP) = " + ND(OOP) + " ; Ask = " + Ask);
   pr ( "g_stopLevel = " + g_stopLevel);

   if (ND(OOP)> (Ask + g_stopLevel))
       ticket = OrderSend ( Symbol (), OP_BUYSTOP, 0.1 , ND(OOP), 30 , 0 , 0 , NULL , i_magic, 0 , CLR_NONE );
   else pr ( "Ордер послать не удалось " + GetLastError ());
   
   if (ticket > 0 )
   {
 //      lastBarTime = Time[0];               // На текущем баре все необходимые действия..
                                             // .. успешно выполнены
       return ( true );
   }
}

어디:

g_stopLevel = MarketInfo( Symbol (),MODE_STOPLEVEL) * pt;

모든 것은 Artem과 같은 방식으로 작성됩니다. 어제도 같은 논리였다. 하지만 계속해서 실수가 겹친다. 재 인용 이나 미끄러짐이 없는 테스터에서 작업하기 위해 추가 포인트를 던지는 것은 전혀 의미가 없습니다.

같은 갈퀴에 다시 걸려 넘어지지 않도록 여기에서 어떻게 더 보편적으로 행동할 수 있습니까? 결국 어드바이저를 아무리 많이 만나도 어딜가나 밀리는 것 빼고는 2~3pp 추가 던지지 않습니다. 결국 6pp가 나올 것입니다. 필요한 가격과의 편차. 그리고 이것은 더 이상 정확하지 않습니다. Expert Advisors는 틱과 분 모두에 대해 작성되었습니다. 그리고 분명히 거래의 정확성이 될 수 있습니다. 그래서 나는 정확성이 존재하고 큰 들여 쓰기가 없기를 원합니다 ...

 

기타!

글로벌 질문

어떻게 든 터미널에서 주말에 틱 스트림을 가져와 어드바이저를 침착하게 실행하고 디버그할 수 있습니까?

평일에 쓰는게 정상이라 작업/경매 등 매우 어렵습니다.

EA를 시작하는 한 틱은 적합하지 않습니다. 특정 범위의 틱 흐름이 정확히 필요합니다.

자연에 그런 것이 있습니까?

주말에 견적의 흐름을 에뮬레이트하는 MT4 서버?

 
pasha5282 :

얘들아, 시장이 열리고 시장이 닫혔다는 메시지를 주는 스크립트를 말해줘.

즉, 월요일 0.00.01이 오면 시장이 열린다는 메시지를 보낸 다음 "시장이 열려 있습니다"라는 메시지가 표시되며 시장이 닫히는 것과 유사합니다.

스크립트를 작성했지만 어떤 이유로 작동하지 않습니다((알아내도록 도와주세요.


이것이 스크립트이고 scpirts 폴더에 있으면 한 번 작동하고 차트에서 제거되었습니다. 영구적으로 두려면 이 안에 코드를 입력하세요.


 int start()
{
   while (! IsStopped ())
   {
       // вот сюда

       Sleep ( 500 );
   }
}
사유: