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

 

나는 아마도 뭔가를 놓치고있을 것입니다 :

 extern double LotsStep = 0.1 ;
       double Lots;
...

int start()
{
   ...
   
   if (NewOrder)
   { 
       if ( OrdersTotal () == 0 )
         Lots = LotsStep;
       else
         Lots += LotsStep;
      
      Lots = TrueLots(Lots);
       if (Lots < 0 )
      {
         Alert ( "Не хватает денег на " , DoubleToStr (-Lots, 2 ), " лотов!" );
         Lots = 0 ;
         Buy  = False;
         Sell = False;
      }
      
      NewOrder = False;
   }
      
   //Блок открытия на бай
   
   ...
}

double TrueLots( double Lots)
{
   double Free    = AccountFreeMargin ();
   double One_Lot = MarketInfo ( Symbol (), MODE_MARGINREQUIRED);
   
   if (Lots > Max_Lot)
   {
       Alert ( "..." );
      Lots = Max_Lot;
   }

   if (Lots*One_Lot > Free)
       return (-Lots);
   
   return (Lots);
}

 

그러나 컴파일하는 동안 발생한 부수적인 문제 중 하나는 '(' 함수 정의가 예기치 않게 발생하여 이 함수를 "double LotSize()
"start()의 경우 오류가 사라졌고 그 결과 이 함수는 원칙적으로 열린 각 후속 로트를 증가시키기 시작
했지만 구매에 대한 일련의 신호에서만 유효하고 반대 신호가 있을 때 수신되고 카운터가 재설정되고 새로운 피라미드가 건설되기 시작했습니다. 물론 아마도 내가 이 코드 조각을 가져간 이유는 이 단계에 대한 책임이 그 사람이라고 생각했기 때문에 그렇지 않은 것으로 나타났습니다. 그래서 ...

 
MaxZ :

나는 아마도 뭔가를 놓치고있을 것입니다 :


감사해요. 나는 지금 시도 할거야
 
SeALALex :
그런 것


예고편을보십시오 - 자신에게 맞습니다.

파일:
b-lots.mqh  3 kb
 
SeALALex :

감사해요. 나는 지금 시도 할거야

주어진 수의 로트를 열 가능성에 대한 또 다른 검사를 추가했습니다. 즉흥적이고 행복합니다! :))


논리는 다음과 같습니다.

시장에 주문이 없으면(여기서 보류 주문 제외), 초기 값을 lot 변수에 할당합니다(이 경우 동일한 단계).

시장에 이미 주문이 있는 경우 열 때마다 Lot 매개변수가 LotteStep 값만큼 증가합니다.

나는 당신이 가지고 있는 구체적인 작업이 무엇인지 몰라서 "즉흥 연주"라고 썼습니다.


로마 인. :


예고편을보십시오 - 자신에게 맞습니다.

당신의 손으로 모든 것을 이해하는 것이 더 낫습니다. 동시에 코딩을 배우게 될 것입니다! :디

 
MaxZ :

나는 아마도 뭔가를 놓치고있을 것입니다 :


맥심, 시간 되시면 주제를 봐주세요... :-)))

나는 한 번에 모든 고문에 대한 "공통 분모"에 올 수 없습니다(범용 버전)... :-(((

내 EA 코드에서 - "이중" 오버플로에 대해 씁니다...

언젠가는 스크린샷이 첨부된 해당 스레드에서 자세한 질문을 할 것입니다 ...

추신 일부 올빼미 변형의 경우 - 제대로 작동하고 일부는 작동하지 않습니다 ... 이제 곱셈을 포함하여 모든 것이 책에 따라 수행됩니다 ... 그의 제품은 또한 보편적 인 접근 방식을위한 요소로 나눌 필요가 있습니다. TWR 변수에 대해 권장한 대로 배열을 만들었습니다. 하지만 지금까지 모든 어드바이저에 대해 모든 것이 작동하지 않습니다. 일부의 경우 "이중" 데이터 유형이 히스토리에서 최대 1000개 조각의 트랜잭션에 대해 여전히 오버플로되고 있습니다 ... 최적 f의 최종 계산.

 
MaxZ :

나는 아마도 뭔가를 놓치고있을 것입니다 :


글쎄요, 죄송합니다. 항상 잡지는 않습니다.


오류 NewOrder - 'NewOrder' - 변수가 정의되지 않았습니다. 먼저 어디에서 호출해야 합니까?

 
Roman. :


맥심, 시간 되시면 주제를 보세요... :-)))

ProCapital 포럼 스레드에서 무엇을 볼 수 있습니까? :))


로마 인. :


나는 한 번에 모든 고문에 대한 "공통 분모"에 올 수 없습니다(범용 버전)... :-(((

내 EA 코드에서 - "이중" 오버플로에 대해 씁니다...

언젠가는 스크린샷이 첨부된 해당 스레드에서 자세한 질문을 할 것입니다 ...

추신 일부 올빼미 변형의 경우 - 제대로 작동하고 일부는 작동하지 않습니다 ... 이제 곱셈을 포함하여 모든 것이 책에 따라 수행됩니다 ... 그의 제품은 또한 보편적 인 접근 방식을위한 요소로 나눌 필요가 있습니다. TWR 변수에 대해 권장한 대로 배열을 만들었습니다. 하지만 지금까지 모든 어드바이저에 대해 모든 것이 작동하지 않습니다. 일부의 경우 "이중" 데이터 유형이 히스토리에서 최대 1000개 조각의 트랜잭션에 대해 여전히 오버플로되고 있습니다 ... 최적 f의 최종 계산.

ProCapital 스레드에서?? 왜 거기? 누워서 스크린샷을 보고 생각하겠습니다.
 
MaxZ :

ProCapital 포럼 스레드에서 무엇을 확인해야 합니까? :))


ProCapital 스레드에서?? 왜 거기? 누워서 스크린샷을 보고 생각하겠습니다.


죄송합니다. 버퍼에 잘못된 링크가 있습니다. 이전 링크... :-)))

여기.

지금은 직장에 있습니다. 오늘 밤이나 내일 같은 스레드에 스크린샷과 함께 자세한 질문을 게시하겠습니다. :-)))

 
SeALALex :

글쎄요, 죄송합니다. 항상 잡지는 않습니다.


오류 NewOrder - 'NewOrder' - 변수가 정의되지 않았습니다. 먼저 어디에서 호출해야 합니까?

그것은 경험과 함께 올 것입니다! ;)


NewOrder는 bool 변수입니다. 예를 들어 Start() 함수의 시작 부분에 선언해야 합니다. 모두 코드 구조에 따라 다르지만.

주문을 열려고 할 때 NewOrder 변수를 True로 설정합니다.

예를 들어, EA는 공개 가격과 이동 평균 지표에 대해 작동합니다.

if ((Close[2] < = MA2 && Close[1] > MA1) || (Close[2] < MA2 && Close[1] > = MA1))
{
   NewOrder = True;
   Buy = True;
}