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

 
Vinsant :

이 표시기의 논리를 이해하도록 도와주세요.

여기에서 디컴파일하면 금지될 수 있습니다.
[삭제]  
Reshetov :
여기에서 디컴파일하면 금지될 수 있습니다.
그리고 이것이 불완전하다는 것을 어디에서 볼 수 있습니까? ) 불행히도 저자를 찾지 못했고이 지표는 2006 년에 좋은 시장 진입 을 보여 주었고 오늘 기억했습니다.)) 그 논리가 무엇을 기반으로하는지 이해하고 싶습니다.
 
sergeev :

MinLot 및 LotStep을 통한 프로세스

예를 들어 다음과 같이 해야 합니다. - NormalizeDouble (lots, precision );

무엇을 줄까요, 이해할 수 없습니다(MinLot 및 LotStep)?

 
Vinsant :
그리고 이것이 불완전하다는 것을 어디에서 볼 수 있습니까? )
중재자가 와서 게시한 코드의 논리를 이해할 것입니다. 그러므로 죄가 보이는 곳과 보이지 않는 곳을 가리켜 보일 때까지 죄를 피하는 것이 좋습니다.
[삭제]  
Reshetov :
중재자가 와서 게시한 코드의 논리를 이해할 것입니다. 그러므로 죄가 보이는 곳과 보이지 않는 곳을 가리켜 보일 때까지 죄를 피하는 것이 좋습니다.
당신의 조언을 따랐습니다.
 
fore-x :

예를 들어 다음과 같이 해야 합니다. - NormalizeDouble(lots, precision );

무엇을 줄까요, 이해할 수 없습니다(MinLot 및 LotStep)?

서둘러 스케치했습니다. 다음과 같이 다소:
 double minlot = MarketInfo ( Symbol , MODE_MINLOT);

int d = 0 ;
 
if (minlot < 0.9999 ) {
   if (minlot < 0.09999 ) {
    d = 2 ;
  } else {
    d = 1 ;
  }
}

 ... 

NormalizeDouble (lots, d);
 
Reshetov :
서둘러 스케치했습니다. 다음과 같이 다소:

그리고 물론 과학적 찌르기의 방법으로. 매개변수는 어디에도 저장되지 않습니다. 우리는 알게 될 것입니다.

 
fore-x :

그리고 물론 과학적 찌르기의 방법으로. 매개변수는 어디에도 저장되지 않습니다. 우리는 알게 될 것입니다.

터미널 어디에도 저장할 수 없기 때문에 어깨는 떠 있을 수 있으며 서버만 이에 대해 알 수 있습니다. 내 생각에 가장 정확한 계산은 다음과 같습니다.

 double minlot = MarketInfo ( Symbol (), MODE_MINLOT);
double maxlot = MarketInfo ( Symbol (), MODE_MAXLOT);
double lotstep = MarketInfo ( Symbol (), MODE_LOTSTEP);

double SMALL = 0.0000001 ;

double lot, nextlot;

//обнуляем внутреннюю переменную ошибки
GetLastError ();

//смотрим, насколько дают открыться
for (lot= 0 ; lot<maxlot+SMALL && GetLastError ()!=ERR_NOT_ENOUGH_MONEY; lot = nextlot)
{
   if (lot<minlot) nextlot = minlot;
   else nextlot = lot+lotstep;
   AccoutFreeMarginCheck( Symbol (), OP_BUY, nextlot);
}

// ответ на вопрос уже в переменной lot, а если вообще открыться нельзя, то там 0. Осталось нормализовать.
// Нормализацию правильно проводить от lotstep, а не от minlot, т.к. встречаются ситуации когда, например, 
// minlot = 3.0, а lotstep = 0.1

int dig = - MathFloor ( MathLog (lotstep)/ MathLog ( 10 ));

lot = NormalizeDouble (lot, dig);

 

오류 130 이 발생하는 이유를 알려주실 수 있습니까?

ticket1 = OrderSend ( Symbol (),OP_BUYLIMIT,Lot,Level,Slippage, 0 , 0 , 0 ,MagicNumber, 0 , Green );
 
sss2019 :

오류 130이 발생하는 이유를 알려주실 수 있습니까?


ticket1 = OrderSend ( Symbol (),OP_BUYLIMIT,Lot,Level,Slippage, 0 , 0 , 0 ,MagicNumber, 0 , Green );
                                                                ^
                                                          Что за хрень?