[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 410

 
Morzh09 >> :

동료 여러분, 왜 그러한 문제가 발생할 수 있습니까?


포지션을 여는 조건은 충족되지만 동시에 포지션은 열리지 않습니다...


if ( ((MathRound(iCustom(NULL, 0,"ind1",2,0))==1)&&(ind2()==1) )
{
if ( buy_order_open==0 )
{
Alert("Время покупать ", Symbol());
//long
ticket = OrderSend(Symbol(), OP_BUY, lots,NormalizeDouble(Ask, Digits), 3,NormalizeDouble(Bid - sl * Point, Digits), 0, "Buy", MagicNumber, 0, Blue); //Ask
//----
if(ticket < 0)
{
Sleep(30000);
prevtime = Time[1];
}

buy_order_open = 1;
}

}

경고 메시지가 발생했지만 주문이 전송되지 않았습니다... :((

NormalizeDouble(Ask, Digits )은 ASK로 충분하지 않습니다. 그리고 그것을 정규화하기로 결정했다면 어떤 종류의 숫자입니까? 그것은 무엇과 같거나 어떻게 얻습니까?

 
zhuki >> :

NormalizeDouble(Ask, Digits )은 ASK로 충분하지 않습니다. 그리고 그것을 정규화하기로 결정했다면 어떤 종류의 숫자입니까? 그것은 무엇과 같거나 어떻게 얻습니까?

NormalizeDouble

부동 소수점 숫자를 지정된 정밀도로 반올림합니다.

숫자

현재 상품 가격의 소수점 이하 자릿수입니다.

가끔 실수 경매에서 다섯 번째 기호로 인한 기능 1.4556 2

 
zhuki писал(а) >>

NormalizeDouble(Ask, Digits )은 ASK로 충분하지 않습니다. 그리고 그것을 정규화하기로 결정했다면 어떤 종류의 숫자입니까? 그것은 무엇과 같거나 어떻게 얻습니까?

Digits에서는 모든 것이 정상입니다.

문제는 미끄러짐에 있을 가능성이 큽니다. 5자리 3점으로는 부족하다

 
Vinin >> :

Digits는 모든 것이 좋습니다.

문제는 미끄러짐에 있을 가능성이 큽니다. 5자리 3점으로는 부족하다

그러나 테스터에서 슬리피지를 어떻게 설정해도 여전히 작동하지만 테스터에서는 작동하지 않습니다. 그리고 우리가 말하는 거래 기능의 오류는 무엇입니까?

NormalizeDouble을 제거하면 모든 것이 작동할 것이라고 생각합니다.

 
zhuki >> :

그러나 테스터에서 슬리피지를 어떻게 설정해도 여전히 작동하지만 테스터에서는 작동하지 않습니다. 그리고 우리가 말하는 거래 기능의 오류는 무엇입니까?

NormalizeDouble을 제거하면 모든 것이 작동할 것이라고 생각합니다.

slippage=25 문제 없습니다!

이것은 약

ERR_INVALID_STOP 130 잘못된 발
ERR_INVALID_PRICE 129 잘못된 가격
ERR_INVALID_PRICE_PARAM 4107 거래 기능에 대한 잘못된 가격 매개변수
 
costy_ >> :

이것은 약

ERR_INVALID_STOP 130 잘못된 발
ERR_INVALID_PRICE 129 잘못된 가격
ERR_INVALID_PRICE_PARAM 4107 거래 기능에 대한 잘못된 가격 매개변수

130 당신은 SL을 잘못된 방향이나 너무 가까이에 두려고 하고 있습니다.

129 아마도 숫자를 사용하여 옵션 중 하나의 가격을 책정하는 경우(잘못된)

4107 만난 적이 없다 말할 수 없습니다.

오류가 있습니까, 없습니까?

 
zhuki >> :

130 당신은 SL을 잘못된 방향이나 너무 가까이에 두려고 하고 있습니다.

129 아마도 숫자를 사용하여 옵션 중 하나의 가격을 책정하는 경우(잘못된)

4107 만난 적이 없다 말할 수 없습니다.

오류가 있습니까, 없습니까?

문제가 있었습니다. 오래전에 교체했는데 모든 것이 정상입니다. 130은 잘못된 정류장으로 인한 것이 아닙니다. (저는 없습니다!) 딜러에 따라 다릅니다.

고문은 항상 시장에 있습니다! Stop 대신 OrderCloseBy 기능을 사용하는 것이 좋습니다 . 완벽하게 입증되었습니다(일중이 아님).

질문=1.5488 9 및 로트 = 0.1 =))

ERR_INVALID_TRADE_VOLUME 131 잘못된 볼륨
 
Vinin писал(а) >>
기간 ( ) 함수는 현재 시간 프레임을 분 단위로 반환합니다.

모든 것이 해결되었습니다. 감사합니다!

 
kon12 >> :

모든 것이 해결되었습니다. 감사합니다!

텍스트 트리거 사용

 string PeriodToStr ( int Per )
   {
       switch ( Per )                  // Расчёт коэффициентов для..     
       {                                // .. различных ТФ      
       case      1 : return ( "M1" ) ;    // Таймфрейм М1      
       case      5 : return ( "M5" ) ;    // Таймфрейм М5      
       case      15 : return ( "M15" ) ;    // Таймфрейм М15      
       case      30 : return ( "M30" ) ;    // Таймфрейм М30      
       case      60 : return ( "H1" ) ;    // Таймфрейм H1      
       case    240 : return ( "H4" ) ;    // Таймфрейм H4      
       case    1440 : return ( "D1" ) ;    // Таймфрейм D1      
       case 10080 : return ( "W1" ) ;    // Таймфрейм W1      
       case 43200 : return ( "МN" ) ;    // Таймфрейм МN     
       }
   }
 
costy_ >> :

문제가 있었습니다. 오래전에 교체했는데 모든 것이 정상입니다. 130은 잘못된 정류장으로 인한 것이 아닙니다. (저는 없습니다!) 딜러에 따라 다릅니다.

어드바이저는 항상 시장에 있습니다! Stop 대신 OrderCloseBy 기능을 사용하는 것이 좋습니다 . 완벽하게 입증되었습니다(일중이 아님).

Ask=1.5488 9 내 터미널은 많이 먹지 않습니다 = 0.1 =))

ERR_INVALID_TRADE_VOLUME 131 잘못된 볼륨

그리고 만약...

 double LotNorm ( double lots , string sim = "" )
{
int dig = 0 ; double hh ;
if ( sim = = "" ) sim = Symbol ( ) ;
//
if ( lots < MarketInfo ( sim , MODE_MINLOT ) ) { Print ( sim + "=МИНИЛОТ=Недостаточно денег" ) ; return ( - 1 ) ; }
if ( lots > MarketInfo ( sim , MODE_MAXLOT ) ) lots = MarketInfo ( sim , MODE_MAXLOT ) ;
//
if ( MarketInfo ( sim , MODE_MINLOT ) = = 0.1 ) dig = 1 ;
if ( MarketInfo ( sim , MODE_MINLOT ) = = 0.01 ) dig = 2 ;
if ( MarketInfo ( sim , MODE_MINLOT ) = = 0.001 ) dig = 3 ;
if ( MarketInfo ( sim , MODE_MINLOT ) = = 0.0001 ) dig = 4 ;
//
lots = NormalizeDouble ( lots , dig ) ;
//
return ( lots ) ;
}