고맙습니다. 그것을 알아 냈습니다. 오류가 무엇인지 알려주십시오. 기능이 올바르게 계산되지 않는 것 같습니다.
코드를 올바르게 삽입하십시오. 정답 창 상단에서 13번째 상자입니다.
그리고 함수가 한 줄씩 수행하는 작업을 단어로 작성할 수 있습니다.
분명히 옳지 않습니다.
그리고 주문 티켓이 Tick 변수에 할당되는 위치와 방법이 명확하지 않습니다. 그리고 왜 그러한 조건에 대한 마법 및 주문 유형을 확인합니까? _매직 < 0 || OrderMagicNumber() == _magic 함수가 0보다 작은 마법으로 호출되거나 선택한 주문의 수와 같은 마법으로 호출되면 포인트 크기를 요청하고 0과 같으면 주문의 악기 기호에서 빈 값을 찾습니다... 등등.
그리고 선택 주문은 주문 데이터 구조를 채우고 저장합니다. 그리고 주문 번호나 티켓이 다른 다음 선택 주문 후에만 이 구조의 데이터가 변경됩니다.
저것들. OrderSend는 주문 데이터 구조를 채우지 않고 주문 티켓 또는 마이너스 1을 반환합니다. 그리고 주문 구조는 OrderSelect로만 채워집니다. 그런 다음 이 구조에서 이 주문의 데이터를 얻을 수 있습니다.
그리고 주문 티켓이 Tick 변수에 할당되는 위치와 방법이 명확하지 않습니다. 그리고 왜 그러한 조건에 대한 마법 및 주문 유형을 확인합니까? _매직 < 0 || OrderMagicNumber() == _magic 함수가 0보다 작은 마법으로 호출되거나 선택한 주문의 수와 동일한 마법으로 호출되면 포인트 크기를 요청하고 0과 같으면 주문의 악기 기호에서 빈 값을 찾습니다... 등등.
그리고 선택 주문은 주문 데이터 구조를 채우고 저장합니다. 그리고 주문 번호나 티켓이 다른 다음 선택 주문 후에만 이 구조의 데이터가 변경됩니다.
저것들. OrderSend는 주문 데이터 구조를 채우지 않고 주문 티켓 또는 마이너스 1을 반환합니다. 그리고 주문 구조는 OrderSelect로만 채워집니다. 그런 다음 이 구조에서 이 주문의 데이터를 얻을 수 있습니다.
int FindTicket()
{
int oldticket;
int tick= 0 ;
ticket= 0 ;
for ( int cnt = OrdersTotal ()- 1 ; cnt>= 0 ; cnt--)
{
if ( OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic)
{
oldticket = OrderTicket();
if (oldticket > ticket)
{
ticket = oldticket;
tick = OrderTicket();
}
}
}
}
return (tick);
}
int TickF = FindTicket();
int CalculateProfitHistory()
{
double _point;
int i, _ototal = OrdersHistoryTotal(), _profit= 0 ;
for (i = 0 ; i < OrdersHistoryTotal(); i++)
{
if ( OrderSelect (TickF, SELECT_BY_TICKET, MODE_HISTORY))
{
if (OrderSymbol() == Symbol ())
{
if (OrderMagicNumber() == Magic)
{
_point = MarketInfo(OrderSymbol(), MODE_POINT);
if (_point == 0 )
{
if ( StringFind (OrderSymbol(), "" ) < 0 )
_point = 0.0001 ;
else _point = 0.01 ;
}
if (OrderType() == OP_BUY)
{
_profit += int ((MarketInfo(OrderSymbol(), MODE_BID) - OrderOpenPrice())/_point);
}
if (OrderType()==OP_SELL)
{
_profit += int ((OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_ASK))/_point);
}
}
}
}
}
return (_profit);
}
첫 번째 기능에서는 필요한 주문의 티켓을 찾습니다. 그리고 두 번째는 이 티켓 이후에 마감된 모든 주문의 이익을 계산해야 합니다. 그 이전에 있었던 사람들의 이익은 나에게 흥미롭지 않습니다. 여기 두 번째가 있습니다. 그는 삐딱하게 생각합니다. 주문을 열 때 이 2개의 함수가 호출되므로 0과 같아야 하지만 같지는 않습니다. PS는 귀하의 조언을 받아들였으며 어레이를 거부했습니다) 위에서 12번째 사각형)
첫 번째 기능에서는 필요한 주문의 티켓을 찾습니다. 그리고 두 번째는 이 티켓 이후에 마감된 모든 주문의 이익을 계산해야 합니다. 그 이전에 있었던 사람들의 이익은 나에게 흥미롭지 않습니다. PS는 귀하의 조언을 받아들였으며 어레이를 거부했습니다) 위에서 12번째 사각형)
첫 번째 기능은 티켓이 숫자로 증가하는 경우 가장 큰 숫자의 티켓을 포함합니다.))) 사이클의 다음 반복에서 다음 번호 순서의 티켓은 이전 주문의 티켓과 비교됩니다. 선택 주문은 주문 구조를 채우고 OrderTicket은 이 구조에서 티켓 값을 가져옵니다.
한 줄씩 직접 작성하거나 코드의 각 줄에서 수행하는 작업을 말하세요. 더 잘 작성하면 더 명확해집니다.
두 번째 기능에서 동일한 티켓에 대한 OrderSelect는 TikF 티켓과 동일한 주문 데이터로 주문 구조를 채웁니다)
말했지만 이 언어와 관련하여 논리적으로 잘 보이지 않습니다. 프롬프트 마지막 오픈 주문의 티켓을 결정하는 방법은 무엇입니까?
그리고 그 뒤에 오는 모든 마감 주문의 이익을 계산하는 방법은 무엇입니까?
주문 오픈 시간으로. 가장 커야 함) 그리고 주문 번호뿐만 아니라 종종 티켓도 도움이되지 않습니다. 또는 데이터베이스에 시퀀스 번호, 티켓, 주문 상태 및 개장/마감 시간을 기억하십시오.
if ( OrderSelect (Ticket, SELECT_BY_TICKET)== true ) // Если выбор рыночного ордера произошел успешно
{
if (OrderCloseTime()== 0 ) // Если наш рыночный ордер не закрыт {
// Alert ("Наш рыночный ордер жив, Модифицируем его если нужно ");
if (Tral_Stop!= 0 || Tral_Profit!= 0 )
{ ModifyTral(); }
return ;
}
if (OrderCloseTime()!= 0 ) // Если наш рыночный ордер закрылся
{
Alert ("Our market order has closed. The Adviser's work is completed ",
" Swap = ", OrderSwap(), " Commission = ", OrderCommission(),"Profit/loss = ",OrderProfit());
// ..... // получаем профит и считаем общий профит например
}
그리고 논리를 끝까지 발음하는 것이 좋습니다. 그럼 더 쉽습니다. 필요한 데이터로 시작하는 것이 좋으며 충분히 해결해야 함)
주문 오픈 시간이 있습니다(대기 중이 아님). 그들의 티켓이 있습니다. 각 시장 주문에는 시작 가격인 SL과 TP가 있습니다. 그리고 주문 마감 시간이 있습니다. 그리고 주문이 완료된 후 이익 필드가 채워집니다.
이 데이터에서 논리를 배치해야 합니다.
마지막 오픈 오더 다음에 오는 클로즈드 오더라는 문구는 전혀 정의되어 있지 않습니다. 번호, 티켓, 시간 순으로 갈 수 있습니다.
주문 오픈 시간 기준. 가장 커야 함) 그리고 주문 번호뿐만 아니라 종종 티켓도 도움이되지 않습니다. 또는 데이터베이스에 시퀀스 번호, 티켓, 주문 상태 및 개장/마감 시간을 기억하십시오.
그리고 논리를 끝까지 발음하는 것이 좋습니다. 그럼 더 쉽습니다. 필요한 데이터로 시작하는 것이 좋으며 충분히 해결해야 함)
주문 오픈 시간이 있습니다(미정). 그들의 티켓이 있습니다. 각 시장가 주문에는 시작가인 SL과 TP가 있습니다. 그리고 주문 마감 시간이 있습니다. 그리고 주문이 완료된 후 이익 필드가 채워집니다.
이 데이터에서 논리를 배치해야 합니다.
마지막 열린 주문 다음에 오는 마감 주문은 전혀 정의되어 있지 않습니다. 번호, 티켓, 시간 순으로 갈 수 있습니다.
답장을 보내주셔서 감사합니다. 귀하의 제안 중 일부를 구현했습니다. 원하는 틱을 찾는 함수를 작성했습니다. 선택한 함수의 필수 틱 오더 이후에 모든 마감 오더의 이익을 계산하는 함수를 작성했습니다. 남은 것은 권장 사항에 따라 수정하고 시간 확인을 추가하는 등의 일입니다.
tpl = NormalizeDouble(Bid - ProfitLock*Point, Digits);
ticket = OrderSend (Symbol(), OP_SELL, lastlot, Bid, Slippage, 0, tpl, "",Magic, 0, Red);
double CalculateProfitHistory()
{
double order= 0 ,op= 0 ;
int cnt= 0 ;
datetime time= 0 ;
for ( int i=OrdersHistoryTotal()- 1 ; i>= 0 ; i--)
{
if ( OrderSelect (Tick,SELECT_BY_TICKET,MODE_HISTORY))
{
if (OrderSymbol()== _Symbol && OrderMagicNumber()==Magic)
{
op += OrderProfit();
order +=op;
cnt++;
}
}
}
return (order);
}
지금 나를 혼란스럽게 하는 것은 한 가지뿐이지만, 뭔가 잘못되었다고 생각합니다. 테스트 결과 TP가 0.02로 나오면 그녀는 카운트하여 Comment 0.1300에 씁니다. 그녀에게 무슨 문제가 있는지 말해줘?
코드를 알트 S 또는 아이콘으로 힌트 코드로 올바르게 붙여넣습니다.
SaveTick 배열이 필요한 이유는 무엇입니까?
2개의 배열 요소만 사용하고 있습니다. 함수에서 선언하는 경우 전역 또는 정적 변수로 대체하십시오.
2개의 변수에 대해 배열을 사용하는 것은 합리적이지 않습니다.
그리고 분명히 SaveTick 배열의 크기를 설정 하는 FindTicket() 함수를 호출 하기 전에 배열 을 호출하고 있습니다. 그리고 배열이 범위를 벗어났습니다.
고맙습니다. 그것을 알아 냈습니다.
오류가 무엇인지 알려주십시오. 기능이 올바르게 계산되지 않는 것 같습니다.
***고맙습니다. 그것을 알아 냈습니다.
오류가 무엇인지 알려주십시오. 기능이 올바르게 계산되지 않는 것 같습니다.
코드를 올바르게 삽입하십시오. 정답 창 상단에서 13번째 상자입니다.
그리고 함수가 한 줄씩 수행하는 작업을 단어로 작성할 수 있습니다.
분명히 옳지 않습니다.
그리고 주문 티켓이 Tick 변수에 할당되는 위치와 방법이 명확하지 않습니다. 그리고 왜 그러한 조건에 대한 마법 및 주문 유형을 확인합니까?
_매직 < 0 || OrderMagicNumber() == _magic
함수가 0보다 작은 마법으로 호출되거나 선택한 주문의 수와 같은 마법으로 호출되면 포인트 크기를 요청하고 0과 같으면 주문의 악기 기호에서 빈 값을 찾습니다... 등등.
그리고 선택 주문은 주문 데이터 구조를 채우고 저장합니다. 그리고 주문 번호나 티켓이 다른 다음 선택 주문 후에만 이 구조의 데이터가 변경됩니다.
저것들. OrderSend는 주문 데이터 구조를 채우지 않고 주문 티켓 또는 마이너스 1을 반환합니다. 그리고 주문 구조는 OrderSelect로만 채워집니다. 그런 다음 이 구조에서 이 주문의 데이터를 얻을 수 있습니다.
코드를 올바르게 삽입하십시오. 정답 창 상단에서 13번째 상자입니다.
그리고 함수가 한 줄씩 수행하는 작업을 단어로 작성할 수 있습니다.
분명히 옳지 않습니다.
그리고 주문 티켓이 Tick 변수에 할당되는 위치와 방법이 명확하지 않습니다. 그리고 왜 그러한 조건에 대한 마법 및 주문 유형을 확인합니까?
_매직 < 0 || OrderMagicNumber() == _magic
함수가 0보다 작은 마법으로 호출되거나 선택한 주문의 수와 동일한 마법으로 호출되면 포인트 크기를 요청하고 0과 같으면 주문의 악기 기호에서 빈 값을 찾습니다... 등등.
그리고 선택 주문은 주문 데이터 구조를 채우고 저장합니다. 그리고 주문 번호나 티켓이 다른 다음 선택 주문 후에만 이 구조의 데이터가 변경됩니다.
저것들. OrderSend는 주문 데이터 구조를 채우지 않고 주문 티켓 또는 마이너스 1을 반환합니다. 그리고 주문 구조는 OrderSelect로만 채워집니다. 그런 다음 이 구조에서 이 주문의 데이터를 얻을 수 있습니다.
첫 번째 기능에서는 필요한 주문의 티켓을 찾습니다. 그리고 두 번째는 이 티켓 이후에 마감된 모든 주문의 이익을 계산해야 합니다. 그 이전에 있었던 사람들의 이익은 나에게 흥미롭지 않습니다. 여기 두 번째가 있습니다. 그는 삐딱하게 생각합니다. 주문을 열 때 이 2개의 함수가 호출되므로 0과 같아야 하지만 같지는 않습니다.
PS는 귀하의 조언을 받아들였으며 어레이를 거부했습니다)
위에서 12번째 사각형)
첫 번째 기능에서는 필요한 주문의 티켓을 찾습니다. 그리고 두 번째는 이 티켓 이후에 마감된 모든 주문의 이익을 계산해야 합니다. 그 이전에 있었던 사람들의 이익은 나에게 흥미롭지 않습니다.
PS는 귀하의 조언을 받아들였으며 어레이를 거부했습니다)
위에서 12번째 사각형)
첫 번째 기능은 티켓이 숫자로 증가하는 경우 가장 큰 숫자의 티켓을 포함합니다.))) 사이클의 다음 반복에서 다음 번호 순서의 티켓은 이전 주문의 티켓과 비교됩니다. 선택 주문은 주문 구조를 채우고 OrderTicket은 이 구조에서 티켓 값을 가져옵니다.
한 줄씩 직접 작성하거나 코드의 각 줄에서 수행하는 작업을 말하세요. 더 잘 작성하면 더 명확해집니다.
두 번째 기능에서 동일한 티켓에 대한 OrderSelect는 TikF 티켓과 동일한 주문 데이터로 주문 구조를 채웁니다)
첫 번째 기능은 티켓이 숫자로 증가하는 경우 가장 큰 숫자의 티켓을 포함합니다.))) 사이클의 다음 반복에서 다음 번호 순서의 티켓은 이전 주문의 티켓과 비교됩니다. 선택 주문은 주문 구조를 채우고 OrderTicket은 이 구조에서 티켓 값을 가져옵니다.
한 줄씩 직접 작성하거나 코드의 각 줄에서 수행하는 작업을 말하세요. 더 잘 작성하면 더 명확해집니다.
두 번째 기능에서 동일한 티켓에 대한 OrderSelect는 TikF 티켓과 동일한 주문 데이터로 주문 구조를 채웁니다)
말했지만 이 언어와 관련하여 논리적으로 잘 보이지 않습니다. 프롬프트 마지막 오픈 주문의 티켓을 결정하는 방법은 무엇입니까?
그리고 그 뒤에 오는 모든 마감 주문의 이익을 계산하는 방법은 무엇입니까?
말했지만 이 언어와 관련하여 논리적으로 잘 보이지 않습니다. 프롬프트 마지막 오픈 주문의 티켓을 결정하는 방법은 무엇입니까?
그리고 그 뒤에 오는 모든 마감 주문의 이익을 계산하는 방법은 무엇입니까?
주문 오픈 시간으로. 가장 커야 함) 그리고 주문 번호뿐만 아니라 종종 티켓도 도움이되지 않습니다. 또는 데이터베이스에 시퀀스 번호, 티켓, 주문 상태 및 개장/마감 시간을 기억하십시오.
그리고 논리를 끝까지 발음하는 것이 좋습니다. 그럼 더 쉽습니다. 필요한 데이터로 시작하는 것이 좋으며 충분히 해결해야 함)
주문 오픈 시간이 있습니다(대기 중이 아님). 그들의 티켓이 있습니다. 각 시장 주문에는 시작 가격인 SL과 TP가 있습니다. 그리고 주문 마감 시간이 있습니다. 그리고 주문이 완료된 후 이익 필드가 채워집니다.
이 데이터에서 논리를 배치해야 합니다.
마지막 오픈 오더 다음에 오는 클로즈드 오더라는 문구는 전혀 정의되어 있지 않습니다. 번호, 티켓, 시간 순으로 갈 수 있습니다.
주문 오픈 시간 기준. 가장 커야 한다
올바르게 작성했지만 코드가 다소 화려한 것으로 판명되었습니다)))
내 생각에 작성하고 수행하는 방법:
추신: 티켓 번호로 OrderSelect()는 미결 주문을 정렬하는 것보다 훨씬 더 오래 걸립니다.
올바르게 작성했지만 코드가 다소 화려한 것으로 판명되었습니다)))
내 의견으로는 작성하고 수행하는 방법:
추신: 티켓 번호로 OrderSelect()는 미결 주문을 정렬하는 것보다 훨씬 더 오래 걸립니다.
Igor 감사합니다. 본질을 이해하지 못하면 올바른 코드가 어떤 이유로 본질을 전달하지 못하기 때문에 간단한 알고리즘을 단어로 공식화하도록 요청합니다)))
주문 오픈 시간 기준. 가장 커야 함) 그리고 주문 번호뿐만 아니라 종종 티켓도 도움이되지 않습니다. 또는 데이터베이스에 시퀀스 번호, 티켓, 주문 상태 및 개장/마감 시간을 기억하십시오.
그리고 논리를 끝까지 발음하는 것이 좋습니다. 그럼 더 쉽습니다. 필요한 데이터로 시작하는 것이 좋으며 충분히 해결해야 함)
주문 오픈 시간이 있습니다(미정). 그들의 티켓이 있습니다. 각 시장가 주문에는 시작가인 SL과 TP가 있습니다. 그리고 주문 마감 시간이 있습니다. 그리고 주문이 완료된 후 이익 필드가 채워집니다.
이 데이터에서 논리를 배치해야 합니다.
마지막 열린 주문 다음에 오는 마감 주문은 전혀 정의되어 있지 않습니다. 번호, 티켓, 시간 순으로 갈 수 있습니다.
답장을 보내주셔서 감사합니다. 귀하의 제안 중 일부를 구현했습니다.
원하는 틱을 찾는 함수를 작성했습니다.
선택한 함수의 필수 틱 오더 이후에 모든 마감 오더의 이익을 계산하는 함수를 작성했습니다. 남은 것은 권장 사항에 따라 수정하고 시간 확인을 추가하는 등의 일입니다.
지금 나를 혼란스럽게 하는 것은 한 가지뿐이지만, 뭔가 잘못되었다고 생각합니다. 테스트 결과 TP가 0.02로 나오면 그녀는 카운트하여 Comment 0.1300에 씁니다. 그녀에게 무슨 문제가 있는지 말해줘?