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

 
borilunad :
물론 교과서와 설명서에 있지만 직장 에서 기성품을 구할 수 있습니다. 그것은 매우 위험하고 무모하고, 돈이 많으면 복권을 사면 더 유익하고 공부할 필요가 없습니다!

모든 질문에 대한 답변이 가능하고 모든 것이 튜토리얼과 문서에 있는 포럼을 만드는 이유가 무엇입니까? 나는 고문과 무엇을 하고 어떻게 관리할 것인가 - 언어에 대한 지식이 있든 없든, 죄송합니다. 이것은 제 자신의 일입니다. 같은 시리즈의 다른 복권뿐만 아니라 복권 구입에 대한 팁은 스스로에게 보관하십시오.
 
Magnifique :

모든 질문에 대한 답변이 가능하고 모든 것이 튜토리얼과 문서에 있는 포럼을 만드는 이유가 무엇입니까? 나는 고문과 무엇을 하고 어떻게 관리할 것인가 - 언어에 대한 지식이 있든 없든, 죄송합니다. 이것은 제 자신의 일입니다. 같은 시리즈의 다른 복권뿐만 아니라 복권 구입에 대한 팁은 스스로 기억하십시오.

포럼은 프로그래밍 문제에 대해 논의하기 위해 만들어졌으며, 지식 없이도 반복적으로 말하지만, 매일 디버깅, 조정 및 검색 없이도 끊임없이 변화하는 시장 상황, 의사 결정에 적합한 훌륭한 조언자가 있기 때문에 당신에게 해가 되는 팁을 원합니다. 당신을 위해 슬픈 하루에 창고를 병합합니다. 물론 포럼은 초보자가 이미 무언가를 하고 어려움을 겪을 때 도움이되지만 게으름 때문이 아니라 프로그래밍 과정에서 발생한 문제 때문입니다. 그래서 "어려움없이 .."그리고 지식이 없으면 어디에도 없습니다!

 
Magnifique :

모든 질문에 대한 답변이 가능하고 모든 것이 튜토리얼과 문서에 있는 포럼을 만드는 이유가 무엇입니까? 나는 고문과 무엇을 하고 어떻게 관리할 것인가 - 언어에 대한 지식이 있든 없든, 죄송합니다. 이것은 제 자신의 일입니다. 같은 시리즈의 다른 복권뿐만 아니라 복권 구입에 대한 팁은 스스로에게 보관하십시오.

Victoria , 당신 은 Expert Advisors 작성을 마스터하기 위해 완전히 정상적인 작업을 수행했습니다. 스스로 시작하여 질문과 함께 얻은 코드를 게시하면 나머지가 도움이 될 것입니다. 이 스레드는 주로 이를 위해 존재합니다. 게다가 그런 초보자들과 소통하는 것이 가장 즐겁습니다. 학습 분위기를 계속 유지합시다.

 
최적화 후 얻은 파라미터를 낯선 영역에서 자동으로 불러와서 확인할 수 있도록 그런 모듈이 있는지, MT4용으로 호출하는 방법을 알려주세요. 즉, MT5에서와 같이 옵티마이저에서 찾은 것 중에서 가장 좋은 매개변수를 자동 검색하여 가장 먼저 최적화한 다음 그 중에서 가장 좋은 것을 검색합니다.
 
TG :
최적화 후 얻은 파라미터를 낯선 영역에서 자동으로 불러와서 확인할 수 있도록 그런 모듈이 있는지, MT4용으로 호출하는 방법을 알려주세요. 즉, MT5에서와 같이 옵티마이저에서 찾은 것 중에서 가장 좋은 매개변수를 자동 검색하여 가장 먼저 최적화한 다음 그 중에서 가장 좋은 것을 검색합니다.
정확히 기억은 안나지만 "자동최적화기", "테스트커맨더"로 검색해 보세요.
 
왜 보통은 스크립트를 실행할 때 그런 창이 뜨지 않는데 터미널에 있는 스크립트가 "이 차트에 스크립트를 첨부하시겠습니까?" 라는 창이 뜨면서 가끔 실행되는데...?
 

안녕하세요!

이 문제를 해결할 수 없습니다.

          if (Minute()> 0 && Minute()< 30 )
         {m=Minute();}
         if (Minute()> 30 && Minute()< 60 )
         {m=Minute()- 30 ;}
         if (Minute()== 0 || Minute()== 30 )
         {m= 0 ;}
         price=iOpen(Symb, timeP4, m);
         price_1=iOpen(Symb, timeP4, m+ 30 );

따라서 Expert Advisor가 작동할 때 0 막대(내가 필요로 함) 또는 인접 막대에서 데이터를 가져옵니다. 때때로 그것은 30번째 것(내가 필요로 하는 것), 그 다음 29, 32, 34...를 각각 제공하고 이 막대에서 가격을 가져옵니다.

말해봐, 내가 바 오프셋을 다시 계산하지 않고 시간을 지정하여 가격을 가져와야 하는 특정 바를 EA에 말할 수 있습니까?

고맙습니다.

 
Egori4 :

안녕하세요!

이 문제를 해결할 수 없습니다.

따라서 Expert Advisor가 작동할 때 0 막대(내가 필요로 함) 또는 인접 막대에서 데이터를 가져옵니다. 때때로 그것은 30번째 것(내가 필요로 하는 것), 그 다음 29, 32, 34...를 각각 제공하고 이 막대에서 가격을 가져옵니다.

말해봐, 내가 바 오프셋을 다시 계산하지 않고 시간을 표시하여 가격을 가져와야 하는 특정 바를 EA에 말할 수 있습니까?

고맙습니다.


도움 이 되어야 한다
 

여러분, 안녕하세요...

다음 문제를 도와주세요...

3 MA가 있고, 예를 들어 (MA1>MA2 && MA2<MA3) 매수 또는 매도가 있는 경우와 같이 미리 설명된 상황이 발생하면 댓글에도 작성합니다.

 double MA1 = NormalizeDouble ( iMA ( NULL , PERIOD_M5 ,period_1, 0 , 0 , 0 , 0 ), 5 );
double MA2 = NormalizeDouble ( iMA ( NULL , PERIOD_M5 ,period_2, 0 , 0 , 0 , 0 ), 5 );
double MA3 = NormalizeDouble ( iMA ( NULL , PERIOD_M5 ,period_3, 0 , 0 , 0 , 0 ), 5 );

if (ptm5!=pt1m5 && ptm5== "123" )
    {
       OrderSelect ( OrdersTotal ()- 1 ,SELECT_BY_POS,MODE_TRADES);
           if (OrderOpenTime()<Time[ 3 ])
              {
               if (MA1>MA2 && MA2<MA3)tochka= "123" ; 
                  TimeBar=Time[ 0 ];
                   OrderSend ( Symbol (),OP_BUY, LOT, NormalizeDouble (Ask, Digits ), 3 ,Bid-SL* Point ,Ask+TP* Point ,tochka,Magic, 0 ,Blue);
              }
   }

하지만 전문가의 말미에는 끝내기 전에 모든 것을 csv 파일에 씁니다.

Handle1= FileOpen ( "Points" + Symbol ()+a+ ".csv" , FILE_CSV | FILE_WRITE | FILE_READ , ';' );
FileSeek (Handle1, 0 , SEEK_SET );

for ( int i= 1 ; i<=OrdersHistoryTotal(); i++)       //Цикл по всем ордерам,..
     {                                         //отражённым в терминале
       if ( OrderSelect (i- 1 ,SELECT_BY_POS,MODE_HISTORY)== true ) //Если есть следующий
        {    
     string var1=TimeToStr(OrderOpenTime(),TIME_DATE|TIME_MINUTES);
     string var2=TimeToStr(OrderCloseTime(),TIME_DATE|TIME_MINUTES);
     string varr;
         if (OrderType()==OP_BUY)varr= "buy" ; else varr= "sell" ;
       double oroppr1,orclpr1;
      oroppr1=OrderOpenPrice();
      orclpr1=OrderClosePrice();
       string oroppr=DoubleToStr(oroppr1, 4 );
       string orclpr=DoubleToStr(orclpr1, 4 );
  
       datetime some_time1, some_time2;   
      some_time1=StrToTime(var1);
      some_time2=StrToTime(var2);     
       int shift1=iBarShift( Symbol (), 0 ,some_time1);
       int shift2=iBarShift( Symbol (), 0 ,some_time2);
      
       int shift3=iBarShift( Symbol (), PERIOD_M5 ,some_time1);


double MA01 = NormalizeDouble ( iMA ( NULL , PERIOD_M5 ,period_1, 0 , 0 , 0 ,shift3), 5 );
double MA02 = NormalizeDouble ( iMA ( NULL , PERIOD_M5 ,period_2, 0 , 0 , 0 ,shift3), 5 );
double MA03 = NormalizeDouble ( iMA ( NULL , PERIOD_M5 ,period_3, 0 , 0 , 0 ,shift3), 5 );

if (MA01>MA02 && MA02<MA03)pt0= "123" ;
FileWrite (Handle1,var1,var2,varr,OrderSymbol(),OrderTicket(),OrderLots(),oroppr,orclpr,OrderTakeProfit(),OrderStopLoss(),OrderProfit(),OrderComment(),max,min,g,pt0,g,a,b);
        }
     }                                  
     FileClose (Handle1);   

코드 에서 주문이 열린 날짜와 시간 을 가져 와서 막대를 찾고 이 막대에 대한 모든 MA 값을 기록하는 것을 볼 수 있습니다.

그리고 문제의 본질은 주석 데이터 가 때때로 기록된 데이터와 일치하지 않는다는 것입니다... (그리고 자체 기간 동안에만)

comment= "123" pt0= "213" ;

추신. 부울 정확 = 거짓

이 값을 false와 true로 변경했는데 결과는 동일합니다.

PS2. 쉼표와 대괄호로 오류를 찾는 것을 좋아하는 사람들. 코드가 커서 놓친 부분이 있을 수 있으니 꼭 필요한 부분만 가져왔습니다.

 

내 질문을 반복할 위험이 있습니다.

Такой вопрос. Советник открывает ордер, устанавливая определенное значение magic . Затем MetaTrader закрывается. Есть ли возможность после повторного открытия MT (или, что то же самое) при открытии MT на другой машине восстановить magic? Только что столкнулся: был открыт ордер, после чего добрый дядя из ДЦ перегрузил виртуалку. В результате: все расчеты в топку.


즉, 질문의 본질은 터미널/전문가를 닫은 후에도 마법이 지속되고 어떻게든 마법을 복원할 수 있다는 것입니다.