안녕하세요. 누가 말할 것인가. 3개의 서로 다른 TS, 3개의 서로 다른 Expert Advisors, 서로 다른 쌍의 3개의 서로 다른 매직 넘버. 그러나 그들은 공통 속성을 가지고 있습니다 - 특정 조건( 주문 수 및 작은 이익)에 도달하면 주문을 마감합니다(OrderClose() 함수를 통해). 테스터에는 문제가 없지만 실제로는 OrderClose() 함수가 쌍 중 하나에서 트리거되면 이 함수(OrderClose())는 조건이 충족되는지 여부에 관계없이 다른 쌍에서 트리거됩니다. 아니다. 이유는 무엇입니까? 아마도 사용자 정의 Close() 함수에서?
다음은 닫는 조건과 사용자 정의 Close() 함수입니다.
if (CountBuy() >= 1 && CountSell() >= 1 && CountSymbolTotal() >= NumberOrder)
{
int i;
int total = OrdersTotal ();
double accruals = CalculateCommission() + CalculateSwapBuy() + CalculateSwapSell();
if ((CountProfitBuy() + CountProfitSell()) >= (MaxOrderProfit*GetLots()+ accruals))
{
for (i = total- 1 ; i >= 0 ; i--)
{
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic)
{
if (OrderType() == OP_BUY)
OrderCloseX();
}
}
}
for (i = total- 1 ; i >= 0 ; i--)
{
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic)
{
if (OrderType() == OP_SELL)
OrderCloseX();
}
}
}
}
}
//---------------------void OrderCloseX()
{
int i;
int ticket = - 1 ;
int k = OrdersTotal ();
for (i = k - 1 ; i >= 0 ; i--)
{
if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
{
if ((OrderType() == OP_BUY || OrderType() == OP_SELL) )
{
ticket = OrderTicket();
}
}
}
if (OrderTicket() != ticket)
if (! OrderSelect (ticket, SELECT_BY_TICKET))
Print ( "Ошибка в выборе ордеров!" );
while ( true )
{
int error;
bool result = true ;
if (OrderType()==OP_BUY)
result = OrderClose(OrderTicket(), OrderLots(), NormalizeDouble (Bid, Digits ), Slippage, 0 );
if (OrderType()==OP_SELL)
result = OrderClose(OrderTicket(), OrderLots(), NormalizeDouble (Ask, Digits ), Slippage, 0 );
if (result != TRUE)
{
error = GetLastError ();
Print ( "LastError = " , error);
}
else
{
error = 0 ;
}
if (error == 135 )
RefreshRates();
elsebreak ;
}
}
안녕하세요. 누가 말할 것인가. 3개의 서로 다른 TS, 3개의 서로 다른 Expert Advisors, 서로 다른 쌍의 3개의 서로 다른 매직 넘버. 그러나 그들은 공통 속성을 가지고 있습니다 - 특정 조건( 주문 수 및 작은 이익)에 도달하면 주문을 마감합니다(OrderClose() 함수를 통해). 테스터에는 문제가 없지만 실제로는 OrderClose() 함수가 쌍 중 하나에서 트리거되면 이 함수(OrderClose())는 조건이 충족되는지 여부에 관계없이 다른 쌍에서 트리거됩니다. 아니다. 이유는 무엇입니까? 아마도 사용자 정의 Close() 함수에서?
다음은 닫는 조건과 사용자 정의 Close() 함수입니다.
예상대로 먼저 OrderSelect()를 통해 열거하여 주문을 확인합니다. 주문의 기호와 매직 번호를 제어한 다음 OrderCloseX()에서 주문을 닫고 다시 주문을 반복하지만 어떤 이유로 제어하지 않습니다. OrderSelect()의 기호 및 매직 번호
전체 코드를 다시 작성하지 않으려면 OrderCloseX()에 추가해야 한다고 생각합니다.
if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol() == Symbol () && OrderMagicNumber() == Magic)
나는 또한이 기능을 사용하기로 결정했습니다. 사무실의 문자 수가 5이고 예를 들어 1.00000이고 마지막 값이 0이면 5자가 아니라 0을 반환할 수 있다는 것을 읽었습니다. 예를 들어 , 숫자는 다음과 같을 것입니다. 1.24700은 소수점 이하 3자리를 반환하지만 그 중 5자리가 있어야 합니다. 사실인가요?
나는 또한이 기능을 사용하기로 결정했습니다. 사무실의 문자 수가 5이고 예를 들어 1.00000이고 마지막 값이 0이면 5자가 아니라 0을 반환할 수 있다는 것을 읽었습니다. 예를 들어 , 숫자는 다음과 같을 것입니다. 1.24700은 소수점 이하 3자리를 반환하지만 그 중 5자리가 있어야 합니다. 사실인가요?
Рассчитываемые значения StopLoss, TakeProfit, а также значения цены открытия отложенных ордеров, должны быть нормализованы с точностью, значение которой можно получить функцией Digits(). Нужно...
안녕하세요!
지금 바로 완료된 것 같습니다.
그러나 컴파일할 때 다음과 같은 경고가 표시됩니다. 라인의 유형 변환으로 인한 데이터 손실 가능성 :
인덱스 = GetPatt5barsDN(인덱스);
함수 헤더(및 함수 자체)에는 컴파일 오류가 없습니다.
안녕하세요, 질문이 있습니다. 최적화할 때 특정 패스를 어떻게든 건너뛸 수 있습니까?
예를 들어, 로봇을 2 MA로 최적화합니다. 각각에 대해 10에서 시작하여 1000으로 끝나는 빠르고 느린
느린 기간이 빠른 기간보다 짧은 경우 패스를 건너뛰려면 어떻게 해야 합니까?
안녕하세요, 질문이 있습니다. 최적화할 때 특정 패스를 어떻게든 건너뛸 수 있습니까?
예를 들어, 로봇을 2 MA로 최적화합니다. 10에서 시작하여 각각에 대해 1000으로 끝나는 빠르고 느린
느린 기간이 빠른 기간보다 짧은 경우 패스를 건너뛰려면 어떻게 해야 합니까?
이 경우 초기화 시 return(INIT_PARAMETERS_INCORRECT);
이 경우 초기화 시 return(INIT_PARAMETERS_INCORRECT);
고맙습니다
안녕하세요. 누가 말할 것인가. 3개의 서로 다른 TS, 3개의 서로 다른 Expert Advisors, 서로 다른 쌍의 3개의 서로 다른 매직 넘버. 그러나 그들은 공통 속성을 가지고 있습니다 - 특정 조건( 주문 수 및 작은 이익)에 도달하면 주문을 마감합니다(OrderClose() 함수를 통해). 테스터에는 문제가 없지만 실제로는 OrderClose() 함수가 쌍 중 하나에서 트리거되면 이 함수(OrderClose())는 조건이 충족되는지 여부에 관계없이 다른 쌍에서 트리거됩니다. 아니다. 이유는 무엇입니까? 아마도 사용자 정의 Close() 함수에서?
다음은 닫는 조건과 사용자 정의 Close() 함수입니다.
안녕하세요. 누가 말할 것인가. 3개의 서로 다른 TS, 3개의 서로 다른 Expert Advisors, 서로 다른 쌍의 3개의 서로 다른 매직 넘버. 그러나 그들은 공통 속성을 가지고 있습니다 - 특정 조건( 주문 수 및 작은 이익)에 도달하면 주문을 마감합니다(OrderClose() 함수를 통해). 테스터에는 문제가 없지만 실제로는 OrderClose() 함수가 쌍 중 하나에서 트리거되면 이 함수(OrderClose())는 조건이 충족되는지 여부에 관계없이 다른 쌍에서 트리거됩니다. 아니다. 이유는 무엇입니까? 아마도 사용자 정의 Close() 함수에서?
다음은 닫는 조건과 사용자 정의 Close() 함수입니다.
예상대로 먼저 OrderSelect()를 통해 열거하여 주문을 확인합니다. 주문의 기호와 매직 번호를 제어한 다음 OrderCloseX()에서 주문을 닫고 다시 주문을 반복하지만 어떤 이유로 제어하지 않습니다. OrderSelect()의 기호 및 매직 번호
전체 코드를 다시 작성하지 않으려면 OrderCloseX()에 추가해야 한다고 생각합니다.
예상대로 먼저 OrderSelect()를 통해 열거하여 주문을 확인합니다. 주문의 기호와 매직 번호를 제어한 다음 OrderCloseX()에서 주문을 닫고 다시 주문을 반복하지만 어떤 이유로 제어하지 않습니다. OrderSelect()의 기호 및 매직 번호
전체 코드를 다시 작성하지 않으려면 OrderCloseX()에 추가해야 한다고 생각합니다.
고맙습니다. 내가 고칠게. 이미 수정되었습니다. 아마도 이것이 이유일 것입니다. OrderCloseX() 함수가 쌍 중 하나에서 호출된 다음 다른 모든 쌍과 마법에서 작동하는 것으로 나타났습니다. 그럴 수도, 그럴 수도 있습니다. 다시 한번 감사합니다.
숫자 - 사전 정의된 변수
나는 또한이 기능을 사용하기로 결정했습니다. 사무실의 문자 수가 5이고 예를 들어 1.00000이고 마지막 값이 0이면 5자가 아니라 0을 반환할 수 있다는 것을 읽었습니다. 예를 들어 , 숫자는 다음과 같을 것입니다. 1.24700은 소수점 이하 3자리를 반환하지만 그 중 5자리가 있어야 합니다. 사실인가요?
나는 또한이 기능을 사용하기로 결정했습니다. 사무실의 문자 수가 5이고 예를 들어 1.00000이고 마지막 값이 0이면 5자가 아니라 0을 반환할 수 있다는 것을 읽었습니다. 예를 들어 , 숫자는 다음과 같을 것입니다. 1.24700은 소수점 이하 3자리를 반환하지만 그 중 5자리가 있어야 합니다. 사실인가요?
숫자는 NormalizeDouble과 함께 사용됩니다.
https://docs.mql4.com/en/convert/normalizedouble