마감된 주문 "HELP"에 대한 이익 계산 - 페이지 4 123456789 새 코멘트 [삭제] 2016.12.11 15:53 #31 Renat Akhtyamov : 아니요, 우리는 이 줄을 제거합니다. 이미 이익 계산이 있으며 그렇게 작동하지 않습니다. 코드에서 닫기 명령은 어디에 있습니까? //+----------------------------------------------------------------------------+ // Возвращает суммарный профит в валюте депозита серии закрытых ордеров | //+----------------------------------------------------------------------------+ double LastProfitCL( int op=- 1 ){ //"op" позиция (-1 любая позиция) double LastProfit= 0 ; for (i= OrdersHistoryTotal ()- 1 ;i>= 0 ;i--) if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY ) && ( OrderType ()== OP_BUY || OrderType ()== OP_SELL ) && OrderSymbol ()== Symbol () && OrderMagicNumber ()==magic) { if ( OrderType ()!= op || OrderSymbol ()!= Symbol () || OrderMagicNumber ()!= magic) continue ; if (op< 0 || OrderType ()==op){ if ( OrderCloseTime ()>=t)LastProfit+= OrderProfit ()+ OrderCommission ()+ OrderSwap ();} } return (LastProfit); } 그리고 닫힘 상태에서 {CloseOrder(OrderTicket());t= TimeCurrent ();} {DeleteAll();t= TimeCurrent ();} 1은 계산하지 않음, 2는 올바르게 계산, 3은 계산하지 않음 0 Profit calculation of closed How to code? Please fix this indicator Renat Akhtyamov 2016.12.11 15:59 #32 Natashe4ka : //+----------------------------------------------------------------------------+ // Возвращает суммарный профит в валюте депозита серии закрытых ордеров | //+----------------------------------------------------------------------------+ double LastProfitCL( int op=- 1 ){ //"op" позиция (-1 любая позиция) double LastProfit= 0 ; for (i= OrdersHistoryTotal ()- 1 ;i>= 0 ;i--) if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY ) && ( OrderType ()== OP_BUY || OrderType ()== OP_SELL ) && OrderSymbol ()== Symbol () && OrderMagicNumber ()==magic) { if ( OrderType ()!= op || OrderSymbol ()!= Symbol () || OrderMagicNumber ()!= magic) continue ; if (op< 0 || OrderType ()==op){ if ( OrderCloseTime ()>=t)LastProfit+= OrderProfit ()+ OrderCommission ()+ OrderSwap ();} } return (LastProfit); } 그리고 닫힘 상태에서 {CloseOrder(OrderTicket());t= TimeCurrent ();} {DeleteAll();t= TimeCurrent ();} 1은 계산하지 않음, 2는 올바르게 계산, 3은 계산하지 않음 0 그래서 {t= TimeCurrent ();CloseOrder( OrderTicket ());} {DeleteAll();} 그리고 더 나아가 티켓으로 주문을 마감했습니까? 따라서 시리즈 종료의 시작 시간을 더 일찍 기억해야 합니다. 저것들. 시리즈를 종료하기로 한 결정이 방금 형성된 경우 실제 종료 여부는 중요하지 않습니다. Vitaly Muzichenko 2016.12.11 16:02 #33 Natashe4ka : //+----------------------------------------------------------------------------+ 나는 당신의 끈기를 이해하지만, 테스터에서 작동하지 않고 실제 거래를 위해 일련의 포지션을 닫는 좋은 기능이 있는 작동 버전을 제공했습니다. 터미널이 다시 시작되더라도 모든 것을 계산하고 기억합니다. 확인하고 테스터에서 실행하고 거래 내역 과 결과를 비교하기만 하면 됩니다. 추신. 코드 작성을 잊었습니다 - 여기에 수정 사항이 있습니다. 파일: e-info.mq4 10 kb [삭제] 2016.12.11 16:13 #34 Vitaly Muzichenko : 나는 당신의 끈기를 이해하지만, 테스터에서 작동하지 않고 실제 거래를 위해 일련의 포지션을 닫는 좋은 기능이 있는 작동 버전을 제공했습니다. 터미널이 다시 시작되더라도 모든 것을 계산하고 기억합니다. 확인하고 테스터에서 실행하고 거래 내역 과 결과를 비교하기만 하면 됩니다. 이것을 내 코드에 어떻게 적용할 수 있습니까? 내 추가 작업은 LastProfitCL 값에 따라 다릅니다. [삭제] 2016.12.11 16:15 #35 Renat Akhtyamov : 그래서 {t= TimeCurrent ();CloseOrder( OrderTicket ());} {DeleteAll();} 그리고 더 나아가 티켓으로 주문을 마감했습니까? 따라서 시리즈 종료의 시작 시간을 더 일찍 기억해야 합니다. 저것들. 시리즈를 종료하기로 한 결정이 방금 형성된 경우 실제 종료 여부는 중요하지 않습니다. 그리고 정류장이 닫히면 {t= TimeCurrent ();CloseOrder( OrderTicket ());} {DeleteAll();} 이미 이익 값을 건너뜁니다. Vitaly Muzichenko 2016.12.11 16:17 #36 Natashe4ka : 이것을 내 코드에 어떻게 적용할 수 있습니까? 내 추가 작업은 LastProfitCL 값에 따라 다릅니다. 글쎄, 그것은 이해할 수 있습니다, 당신이 적합하다고 생각하는대로 사용하십시오. double LastProfit = LastProfitCL(- 1 , ( datetime ) GlobalVariableGet (GetGlobalVariableName( "LastProfit" ))); Comment ( " Последний: " , DoubleToString (LastProfit, 1 ) , " Профит: " , DoubleToString (Profit, 1 ) ); " LastProfit "을 한 번 선언하고 필요한 곳에 사용하십시오. Renat Akhtyamov 2016.12.11 16:17 #37 Natashe4ka : 그리고 스톱으로 닫히면 {t= TimeCurrent ();CloseOrder( OrderTicket ());} {DeleteAll();} 이미 이익 값을 건너뜁니다. 응 그들은 그럴거야. "라이브" 주문이 얼마나 남았는지 모든 틱 을 확인할 수 있습니다. 같은 경우 옵션으로 이전 눈금의 시간을 기억하십시오. 그러면 필요한 것을 얻을 것이다. 하지만 일반적으로 자판기에는 정류장이 없습니다. Vitaly Muzichenko 2016.12.11 16:18 #38 Natashe4ka : 그리고 정류장이 닫히면 {t= TimeCurrent ();CloseOrder( OrderTicket ());} {DeleteAll();} 이미 이익 값을 건너뜁니다. 마지막으로 마감된 것만 계산되며 마감 금액에 의존하지 않습니다. 일반적으로 작업이 완전히 명확하지 않으므로 더 이상 논의하지 않습니다. //------------------------------------------------ ---------- 여기에 모든 것을 그렸고 더 이상 작업을 이해하지 못합니다. 파일: e_info.mq4 10 kb [삭제] 2016.12.11 16:38 #39 Vitaly Muzichenko : 여기에 모든 것을 그렸고 더 이상 작업을 이해하지 못합니다. 알았어 고마워 [삭제] 2016.12.11 17:31 #40 따라서 "cnt"가 재설정되었는지 여부도 올바르게 고려하지만 다시 3번 화면에서와 같이 값이 명확하지 않습니다(이익 값은 4.27이어야 함). double LastProfitCL( int op=- 1 ){ //"op" позиция (-1 любая позиция) int cnt= 0 ; double LastProfit= 0 ; for (i= 0 ;i< OrdersHistoryTotal ();i++) if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY ) && ( OrderType ()== OP_BUY || OrderType ()== OP_SELL ) && OrderSymbol ()== Symbol () && OrderMagicNumber ()==magic) { if ( OrderSymbol ()!= Symbol () || OrderMagicNumber ()!=magic) continue ; if ((op< 0 || OrderType ()==op) && cnt== 0 ) {LastProfit+= OrderProfit ()+ OrderCommission ()+ OrderSwap (); cnt++;} else {cnt= 0 ;} } return (LastProfit); } Profit calculation of closed How to code? dictionary mql or something 123456789 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
아니요, 우리는 이 줄을 제거합니다. 이미 이익 계산이 있으며 그렇게 작동하지 않습니다.
코드에서 닫기 명령은 어디에 있습니까?
// Возвращает суммарный профит в валюте депозита серии закрытых ордеров |
//+----------------------------------------------------------------------------+
double LastProfitCL( int op=- 1 ){ //"op" позиция (-1 любая позиция)
double LastProfit= 0 ;
for (i= OrdersHistoryTotal ()- 1 ;i>= 0 ;i--)
if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY ) && ( OrderType ()== OP_BUY || OrderType ()== OP_SELL ) && OrderSymbol ()== Symbol () && OrderMagicNumber ()==magic) {
if ( OrderType ()!= op || OrderSymbol ()!= Symbol () || OrderMagicNumber ()!= magic) continue ;
if (op< 0 || OrderType ()==op){ if ( OrderCloseTime ()>=t)LastProfit+= OrderProfit ()+ OrderCommission ()+ OrderSwap ();}
}
return (LastProfit);
}
그리고 닫힘 상태에서
{CloseOrder(OrderTicket());t= TimeCurrent ();}
{DeleteAll();t= TimeCurrent ();}1은 계산하지 않음, 2는 올바르게 계산, 3은 계산하지 않음 0
// Возвращает суммарный профит в валюте депозита серии закрытых ордеров |
//+----------------------------------------------------------------------------+
double LastProfitCL( int op=- 1 ){ //"op" позиция (-1 любая позиция)
double LastProfit= 0 ;
for (i= OrdersHistoryTotal ()- 1 ;i>= 0 ;i--)
if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY ) && ( OrderType ()== OP_BUY || OrderType ()== OP_SELL ) && OrderSymbol ()== Symbol () && OrderMagicNumber ()==magic) {
if ( OrderType ()!= op || OrderSymbol ()!= Symbol () || OrderMagicNumber ()!= magic) continue ;
if (op< 0 || OrderType ()==op){ if ( OrderCloseTime ()>=t)LastProfit+= OrderProfit ()+ OrderCommission ()+ OrderSwap ();}
}
return (LastProfit);
}
그리고 닫힘 상태에서
{CloseOrder(OrderTicket());t= TimeCurrent ();}
{DeleteAll();t= TimeCurrent ();}1은 계산하지 않음, 2는 올바르게 계산, 3은 계산하지 않음 0
그래서
{DeleteAll();}
그리고 더 나아가
티켓으로 주문을 마감했습니까?
따라서 시리즈 종료의 시작 시간을 더 일찍 기억해야 합니다.
저것들. 시리즈를 종료하기로 한 결정이 방금 형성된 경우 실제 종료 여부는 중요하지 않습니다.
나는 당신의 끈기를 이해하지만, 테스터에서 작동하지 않고 실제 거래를 위해 일련의 포지션을 닫는 좋은 기능이 있는 작동 버전을 제공했습니다.
터미널이 다시 시작되더라도 모든 것을 계산하고 기억합니다.
확인하고 테스터에서 실행하고 거래 내역 과 결과를 비교하기만 하면 됩니다.
추신. 코드 작성을 잊었습니다 - 여기에 수정 사항이 있습니다.
나는 당신의 끈기를 이해하지만, 테스터에서 작동하지 않고 실제 거래를 위해 일련의 포지션을 닫는 좋은 기능이 있는 작동 버전을 제공했습니다.
터미널이 다시 시작되더라도 모든 것을 계산하고 기억합니다.
확인하고 테스터에서 실행하고 거래 내역 과 결과를 비교하기만 하면 됩니다.
이것을 내 코드에 어떻게 적용할 수 있습니까?
내 추가 작업은 LastProfitCL 값에 따라 다릅니다.
그래서
{DeleteAll();}
그리고 더 나아가
티켓으로 주문을 마감했습니까?
따라서 시리즈 종료의 시작 시간을 더 일찍 기억해야 합니다.
저것들. 시리즈를 종료하기로 한 결정이 방금 형성된 경우 실제 종료 여부는 중요하지 않습니다.
이것을 내 코드에 어떻게 적용할 수 있습니까?
내 추가 작업은 LastProfitCL 값에 따라 다릅니다.
글쎄, 그것은 이해할 수 있습니다, 당신이 적합하다고 생각하는대로 사용하십시오.
Comment ( " Последний: " , DoubleToString (LastProfit, 1 ) , " Профит: " , DoubleToString (Profit, 1 ) );
" LastProfit "을 한 번 선언하고 필요한 곳에 사용하십시오.
그리고 스톱으로 닫히면 {t= TimeCurrent ();CloseOrder( OrderTicket ());} {DeleteAll();} 이미 이익 값을 건너뜁니다.
응 그들은 그럴거야.
"라이브" 주문이 얼마나 남았는지 모든 틱 을 확인할 수 있습니다.
같은 경우 옵션으로 이전 눈금의 시간을 기억하십시오.
그러면 필요한 것을 얻을 것이다.
하지만 일반적으로 자판기에는 정류장이 없습니다.
그리고 정류장이 닫히면 {t= TimeCurrent ();CloseOrder( OrderTicket ());} {DeleteAll();} 이미 이익 값을 건너뜁니다.
마지막으로 마감된 것만 계산되며 마감 금액에 의존하지 않습니다.
일반적으로 작업이 완전히 명확하지 않으므로 더 이상 논의하지 않습니다.
//------------------------------------------------ ----------
여기에 모든 것을 그렸고 더 이상 작업을 이해하지 못합니다.
여기에 모든 것을 그렸고 더 이상 작업을 이해하지 못합니다.
따라서 "cnt"가 재설정되었는지 여부도 올바르게 고려하지만 다시 3번 화면에서와 같이 값이 명확하지 않습니다(이익 값은 4.27이어야 함).
int cnt= 0 ;
double LastProfit= 0 ;
for (i= 0 ;i< OrdersHistoryTotal ();i++)
if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY ) && ( OrderType ()== OP_BUY || OrderType ()== OP_SELL ) && OrderSymbol ()== Symbol () && OrderMagicNumber ()==magic) {
if ( OrderSymbol ()!= Symbol () || OrderMagicNumber ()!=magic) continue ;
if ((op< 0 || OrderType ()==op) && cnt== 0 ) {LastProfit+= OrderProfit ()+ OrderCommission ()+ OrderSwap (); cnt++;} else {cnt= 0 ;}
}
return (LastProfit);
}