포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 313

 
고문에 대한 도움에 대한 비판이 필요합니다. https://docs.google.com/document/d/1Bkqu7NzSj8mrNsa5iO8lB6UmKNCJ4YiaY-wKXzbF3Wo/pub
 
Burger :
고문에 대한 도움에 대한 비판이 필요합니다. https://docs.google.com/document/d/1Bkqu7NzSj8mrNsa5iO8lB6UmKNCJ4YiaY-wKXzbF3Wo/pub


나는 비판하는 것을 좋아하지만 많은 것이 있습니다. 나는 첫 번째 단락을 그냥 걸었습니다.

아카이브가 첨부되지 않은 것(지금은 파일 호스팅 서비스 에 던질 것입니다.

 
VladislavVG :

이것이 항상 가장 가까운 것이라면 가능하고 매우 간단하며 물론 마술사에 대한 설명은 필요하지 않습니다. 그러나 이것에 대해 PGM5 에서 아무 것도 들리지 않으며 일반적으로 가격 이 가장 가깝지 않을 수 있지만 현재 가격과 거리가 멀고 그 사이에 다른 이유로 주문이 있을 수 있습니다. 우리가 모르는 의사결정 알고리즘. 관련된 주문에 관한 것이었습니다.
어떤 이유로 가장 가까운 것을 삭제해야한다는 것이 내 기억에 남아 있습니다. 나머지는 더 멀리 떨어져 있고 다른 조건에 대해 열려 있습니다. 그리고 가장 가까운 지연이 시장의 것과 반대이기 때문에 우리는 틀림없는 발견에 대한 모든 데이터를 가지고 있습니다.
 
PGM5 :
지원에 감사합니다. 그리고 이 질문에 대한 답을 어디에서 찾아야 하는지 알려주지 마십시오. 예, 한 가지 더: 주문이 실행될 때와 이익실현이 실행될 때 주문을 해야 하며 그 전에 가장 가까운 주문을 삭제해야 합니다. 미리 감사드립니다.

당신은 이미 기술 사양을 작성하기 시작했습니다. 스스로 무언가를 하기 시작했습니까? 아니면 물고기를 찾고 계십니까? 이 스레드에서 그들은 mql4에서 무료로 프로그래밍하는 방법을 배우는 데 어려움을 겪는 사람들을 돕습니다. 기성품 솔루션을 무료로 얻으려는 사람들에게는 적합하지 않습니다.
 
43
Alexey1979621 11/29/2013 11:52 #

모두를 환영합니다! 한 가지 흥미로운 문제를 해결하는 데 도움을 요청합니다. 어드바이저가 있습니다. 그 특징은 이익을 얻은 후 1에서 4까지의 다음 거래가 손절매로 마감되고 다시 이익이 발생한다는 것입니다. EA는 지표의 신호에 따라 거래를 엽니다. 이익에 따른 손실을 보는 거래를 배제하려면 지표에서 떠오르는 신호를 건너뛸 필요가 있습니다. 이익을 얻은 후에 거래(1,2,3,4)하지 마십시오. 이를 위한 Sig 기능이 있습니다. 그런데 제가 이 기능을 잘못 쓴 것 같습니다. 왜냐하면 그것으로 고문은 주문을 전혀 열지 않으며 그것 없이는 모든 것이 매우 명확하게 작동합니다. 조건에 오류가 있을 수도 있습니다. 그러나 일반적으로 .... 지옥은 알고 있습니다. 두 번째 주에는이 "플러그"에서 이동할 수 없습니다. 신속 똑똑한 사람들, 실수는 어디에 있습니까?

네, signal은 이익을 받은 후 신호의 수이고 pynkt는 이익의 크기(포인트)입니다.

도움을 주시면 감사하겠습니다.

 void CheckForOpen()
{
   int ticket, STOPLEVEL;
   double Price, SL, TP; 
   STOPLEVEL=MarketInfo( Symbol (),MODE_STOPLEVEL);


   double MA1Low = NormalizeDouble ( iMA ( NULL , 0 ,MA_Period_2,MA_Shift_2,MA_Method_2, 0 , 1 ), Digits ); 
   double MA2High = NormalizeDouble ( iMA ( NULL , 0 ,MA_Period_2,MA_Shift_2,MA_Method_2, 1 , 1 ), Digits );
   
 
  
   if (Volume[ 0 ]> 1 ) return ;

     // продажа
   if (Open[ 1 ]>Close[ 1 ] && Open[ 1 ] > MA1Low && Close[ 1 ] < MA1Low)
   
{
       if (Pro( 1 , 100 ))

   {
       ticket= OrderSend ( Symbol (),OP_SELL,Lots,Bid,Slippage,SL,TP, "Pattern_1" , 1000 , 0 ,Red);
       return ;
    }
   
  }  
//---- buy conditions
   // покупка
   if (Open[ 1 ]<Close[ 1 ] && Open[ 1 ] < MA2High && Close[ 1 ] > MA2High)
 
 { 
   if (Pro( 1 , 100 ))
   {
      ticket= OrderSend ( Symbol (),OP_BUY,Lots,Ask,Slippage,SL,TP, "Pattern_1" , 1000 , 0 ,Blue);
       return ;
   }       
   }
}
 
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool Sig( int signal, int pynkt)
 {
   static int cnt = 0 ;
   static datetime tm;
   if (Time[ 0 ] == tm) return ( false );
  tm = Time[ 0 ];
   if ( OrderSelect (OrdersHistoryTotal()- 1 ,SELECT_BY_POS,MODE_HISTORY) == true )
   {
    cnt = cnt + 1 ;
     if (OrderType() == OP_BUY && OrderClosePrice() - OrderOpenPrice() < pynkt* Point ) cnt = 0 ;
     if (OrderType() == OP_SELL && OrderOpenPrice() - OrderClosePrice() < pynkt* Point ) cnt = 0 ;
     if (cnt >= signal) return ( true );
   }
   return ( false );
 }
//+------------------------------------------------------------------+
 
artmedia70 :
당신은 이미 기술 사양을 작성하기 시작했습니다. 스스로 무언가를 하기 시작했습니까? 아니면 물고기를 찾고 계십니까? 이 스레드에서 그들은 mql4에서 무료로 프로그래밍하는 방법을 배우는 데 어려움을 겪는 사람들을 돕습니다. 기성품 솔루션을 무료로 얻으려는 사람들에게는 적합하지 않습니다.



안녕하세요. 프로그래밍 정보: 저는 단지 초보자입니다. 학습을 위한 정보 및 출처에서 - 포럼 및 자습서. 처음에는 다 이해했는데 일반 기능에 다다르다 보니 뭔가 오해가 생기기 시작하는데, 그런데 서신을 하다가 뭔가 푹 빠져버렸어요. 테스터에서 실행해 보니 2달만에 10%의 수익이 나긴 했지만 안정적(저울의 직선이 비스듬하게 올라갑니다) 데모에서 해봤는데 수익이 납니다만 스크립트는 간단합니다. 주문이 항상 접수되는 것은 아니지만 주문이 완료되지 않았기 때문에 모든 것이 중단됩니다. 실생활에서 해봤는데요 - 모든 주문이 다 들어가고(아직까지는 빈틈이 없었지만) 수익을 냈지만 불필요한 포지션이 많이 열렸습니다. 간단한 스크립트와 함수로는 해결할 수 없는 문제임을 깨닫고 도움을 요청하게 되었습니다. 고문은 이익을 가져 오지만 어떤 곳에서는 손으로 "도움을 받아야"합니다. 시간이 지남에 따라 자동화에 "도움"이 된다고 생각합니다.
 
alexey1979621 :
43
Alexey1979621 11/29/2013 11:52 #

모두를 환영합니다! 한 가지 흥미로운 문제를 해결하는 데 도움을 요청합니다. 어드바이저가 있습니다. 그 특징은 이익을 얻은 후 1에서 4까지의 다음 거래가 손절매로 마감되고 다시 이익이 발생한다는 것입니다. EA는 지표의 신호에 따라 거래를 엽니다. 이익에 따른 손실을 보는 거래를 배제하려면 지표에서 떠오르는 신호를 건너뛸 필요가 있습니다. 이익을 얻은 후에 거래(1,2,3,4)하지 마십시오. 이를 위한 Sig 기능이 있습니다. 그런데 제가 이 기능을 잘못 쓴 것 같습니다. 왜냐하면 그것으로 고문은 주문을 전혀 열지 않으며 그것 없이는 모든 것이 매우 명확하게 작동합니다. 조건에 오류가 있을 수도 있습니다. 그러나 일반적으로 .... 지옥은 알고 있습니다. 두 번째 주에는이 "플러그"에서 이동할 수 없습니다. 신속 똑똑한 사람들, 실수는 어디에 있습니까?

네, signal은 이익을 받은 후 신호의 수이고 pynkt는 이익의 크기(포인트)입니다.

도움을 주시면 감사하겠습니다.


Sig() 함수는 주문 내역이 없는 경우 거래 시작을 금지합니다(거짓 반환).
 
Vinin :

Sig() 함수는 주문 내역이 없는 경우 거래 시작을 금지합니다(거짓 반환).
테스터의 히스토리가 모델링 된 줄 알았다(그래서 내가 틀렸다). 기호, 마법으로 마지막 주문을 검색하고 보류중인 주문을 버리는 기능을 만들어야한다는 것이 밝혀졌습니다. 나는 이것을 마음으로 이해하지만 (내가 올바른 방향으로 생각한다면) 펜으로 코드를 실행할 수 없습니다. 힌트를 던질 수 있습니까? 도와 주셔서 감사합니다.
 
alexey1979621 :
테스터의 히스토리가 모델링 된 줄 알았다(그래서 내가 틀렸다). 기호, 마법으로 마지막 주문을 검색하고 보류중인 주문을 버리는 기능을 만들어야한다는 것이 밝혀졌습니다. 나는 이것을 마음으로 이해하지만 (내가 올바른 방향으로 생각한다면) 펜으로 코드를 실행할 수 없습니다. 힌트를 던질 수 있습니까? 도와 주셔서 감사합니다.
모든 힌트는 당신의 것입니다!
선적 서류 비치 교과서

기능:

GetIndexLastPos - 마지막 열린 위치의 인덱스를 반환하거나 -1
GetLotLastPos - 마지막 열린 위치의 로트 크기를 반환하거나 -1

그리고 많은 다른 매우 유용한 것들!

사유: