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

 

안녕하세요.

내가 뭘 잘못하고 있는지 알아낼 수 있도록 도와주세요.

조건부: 물음 = 1.3000

PriceAsk = 1.3055(Step=50 및 Srpead=3인 경우 포함)

부울 BuyOrder=1,

if (Ask-PriceAsk+Step-Spread<=0 && BuyOrder== 0 ) 이 조건이 true로 간주되는 이유는 무엇입니까?
 
ed3sss :

if 문 직전에 조건에 있는 모든 변수의 값을 기록합니다.

Print("Ask:",Ask," PriceAsk:",PriceAsk," Step:",Step," Srpead:",Srpead," BuyOrder:",BuyOrder);
확실히 변수의 일부 값은 당신이 상상한 것이 아닐 것입니다.
 
안녕하세요, 제 MT4 터미널에서, 예를 들어 (eurusd) 터미널 바로 아래에 있는 통화 쌍 중 하나의 버튼을 클릭하여 이 특정 쌍으로 터미널 창을 열면 창을 열 때, 작은 것으로 축소되고 오른쪽 상단 모서리 에서 확장해야 합니다. 이전에 이것이 발생하지 않은 이유와 해결 방법을 알려주십시오.
 
GaryKa :

if 문 직전에 조건에 있는 모든 변수의 값을 기록합니다.

Print("Ask:",Ask," PriceAsk:",PriceAsk," Step:",Step," Srpead:",Srpead," BuyOrder:",BuyOrder);
확실히 변수의 일부 값은 상상했던 것과 다를 것입니다.

확인해 보세요, 감사합니다)
 
hoz 먼저 약간의 이론


그리고 이제 결론

호즈 :
 //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//|        Функция, определения минимальной разрядности лота                          |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
int LotDecimal()
{ return ( MathCeil ( MathAbs ( MathLog (bd_LOTSTEP) / MathLog ( 10 )) ));}
어떻게 작동하는지 이해하고 싶습니다. 그래서 그는 물었다.
밑줄이 그어진 표현식은 bd_LOTSTEP의 밑이 10인 로그 , 즉 bd_LOTSTEP를 얻기 위한 10의 거듭제곱을 반환합니다.
 

GaryKa :

if 문 직전에 조건에 있는 모든 변수의 값을 기록합니다.

Print("Ask:",Ask," PriceAsk:",PriceAsk," Step:",Step," Srpead:",Srpead," BuyOrder:",BuyOrder);
확실히 변수의 일부 값은 상상했던 것과 다를 것입니다.


ed3sss :


확인해 보세요, 감사합니다)

감사합니다. 프로그램에서 논리적 오류를 찾았습니다. 이제 모든 것이 작동합니다.
 

안녕하세요.

현재 상품에 대한 차트에 비문을 표시하려면 어떻게 해야 합니까? 미결 주문의 손익.

Expert Advisor에서 포지션 오픈 여부(터미널 켜기/끄기) 확인 및 터미널 닫기 전 마지막 로트 물량 픽업이 어렵습니다.

고맙습니다.

 
hoz :

방금이 기능을 발견했습니다.

 //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//|        Функция, определения минимальной разрядности лота                          |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
int LotDecimal()
{ return ( MathCeil ( MathAbs ( MathLog (bd_LOTSTEP) / MathLog ( 10 ))));}
어떻게 작동하는지 이해하고 싶습니다. 그래서 그는 물었다.

제가 틀렸다면 사과드립니다. MathLog(x)는 ln(x)(자연 로그)입니다. 다른 밑수로 변환하는 공식은 log_a(b)=ln(b)/ln(a)이며 이 경우 ln(x)/ln(10)=lg(x) ( 십진 로그 )를 얻습니다. 밑이 10인 로그의 정수 부분 lg(1...9)는 0, lg(10...99)는 1, lg(100...999)는 2, lg(1000...9999)는 다음과 같습니다. 3 등, 즉 1보다 큰 숫자의 로그 값은 이 숫자의 자릿수(소수점 앞, 뒤에는 계산하지 않음)에서 1을 뺀 것과 같습니다. x가 0에서 1이면 lg(0.1...0.9)의 정수 부분은 -1, lg(0.01...0.09)는 -2, lg(0.001...0.009)는 -3 등입니다. 즉, 마이너스를 보지 않으면 0에서 1까지의 숫자의 십진 로그는 첫 번째 유효 자릿수까지의 0의 총 수와 같습니다. MathCeil이 어떻게 작동하는지 모르지만 숫자의 정수 부분을 반환하는 경우 이론상 이 함수는 숫자가 1보다 크면 소수점에서 1 을 뺀 숫자까지 의 자릿수를 반환하고 숫자가 0에서 1까지인 경우 첫 번째 유효 자릿수까지의 숫자에서 0의 수입니다. 이 함수의 최소값은 1...9와 같은 x 범위에 있습니다. 또한, 10...99 및 0.1...0.9에서 함수는 1과 같고, 100...999 및 0.01...0.09에서 함수는 2와 같습니다. 이론에 의하면...
 

좋은 오후, 프로그램에 잼이 있습니다. 이미 머리가 깨졌습니다. 손가락으로 뭐가 잘못됐는지 찔러보세요. 수정 조건이 작동하지 않는 이유를 알고 싶습니다. 조건이 참이 아니어도 충족되기 때문에 수정시 1이나 130 오류가 뜨는데 모두 감사합니다.

//---------------TP 주문 수정----------
(i = OrdersTotal() - 1, i >= 0, i--) {
주문 선택(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) 계속;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) {
(주문 유형() == OP_BUY) {
if (OrderTakeProfit() == 0 || OrderTakeProfit() > OprTPB(TP)){
새로 고침();
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OprTPB(TP),0, CLR_NONE );
}
}
if ((주문 유형() == OP_SELL)) {
if (OrderTakeProfit() == 0 || OrderTakeProfit() < OprTPS(TP)){
새로 고침();
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OprTPS(TP),0,CLR_NONE);
}
}
}
}
리턴(0);
}

이중 LastOpPrBuy(이중 VA=0)
{
(i = OrdersTotal() - 1, i>= 0, i--)
{
주문 선택(i, SELECT_BY_POS, MODE_TRADES);
if (va == 0) va = OrderOpenPrice();
if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) 계속;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
if (OrderType() == OP_BUY && OrderOpenPrice()<va) va = OrderOpenPrice();
}
리턴(VA);
}
//------------------------------------------------ ----------------------------------
이중 LastOpPrSell(이중 VA=0)
{
(i = OrdersTotal() - 1, i>= 0, i--)
{
주문 선택(i, SELECT_BY_POS, MODE_TRADES);
if (va == 0) va = OrderOpenPrice();
if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) 계속;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
if (OrderType() == OP_SELL && OrderOpenPrice()>va) va = OrderOpenPrice();
}
리턴(VA);
}
//------------------------------------------------ ----------------------------------
이중 OprTPB(int TP)
{
정수 = 0;
이중 TPB=0;
(i = OrdersTotal() - 1, i>= 0, i--)
{
주문 선택(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) 계속;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
if (OrderType() == OP_BUY)
{
TPB+=OrderOpenPrice();
j++;
}
}
if (j==0) {
j++;
TPB=묻다;
}
TPB=(TPB/j)+TP*포인트;
반환(TPB);
}
//------------------------------------------------ ----------------------------------
이중 OprTPS(int TP)
{
정수 = 0;
이중 TPS=0;
(i = OrdersTotal() - 1, i>= 0, i--)
{
주문 선택(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) 계속;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
if (OrderType() == OP_SELL)
{
TPS+=OrderOpenPrice();
j++;
}
}
if (j==0) {
j++;
TPS = 입찰가
}
TPS=(TPS/j)-TP*포인트;
반환(TPS);
}
//------------------------

 
borilunad :
예, 우리는 모두 여기 새롭습니다! 우리가 간단한 것을 모른다는 것을 알지 못합니까! 우리는 어디에서 찾을 수 있습니까! 적어도 우리는 알고 싶습니다. 어떤 사람들은 코드를 붙여넣고 즉시 돈을 다운로드할 것을 요구할 것이라고 생각하는 것이 아닙니다!


))) 유머 거래에서 :

- 수익성 있는 어드바이저를 다운로드할 수 있는 곳을 알려주세요!

- 주제의 더 높은 곳에서 @MOZG@v4.12라는 로봇을 배치했습니다.