//+----------------------------------------------------------------------------+// Убыточно ли закрылся последний ордер, и подсчет количестваint fHistory(){
int loss = 0 ;
for ( int i=OrdersHistoryTotal()- 1 ; i >= 0 ; i--){ // Выборка в историиif ( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)== true ){ // Если есть следующий в историиif (OrderMagicNumber()!=magN) continue ; // Ордера не нашего экспертаif (OrderProfit() < 0 ) loss = loss++; // Если убыток по посл.ордеру - считаемif (OrderProfit() > 0 ) return (loss); // Если прибыль, вернем количество убыточных
}
}
return (- 1 );
}
OrderProfit(), OrderType() 등을 사용하기 전에 OrderSelect 를 몇 번이나 호출해야 합니까? Start 내에서 한 번으로 충분합니까 아니면 OrderProfit, OrderType 등을 사용하기 전에 매번... OrderSelect를 호출해야 합니까 ??
그리고 OrderProfit 직전에 OrderSelect를 호출해야 하는지 아니면 처음에 아무데나 호출할 수 있는지 여부는 ??
수수께끼 하나를 풀 수 있나요: 왜, 내가 이 함수를 조건에 삽입했을 때 || isCloseLastPosByTake() == 참 || 테스터의 전문가는 속도가 많이 느려지기 시작했는데, 10배!? 이것은 상호 배타적인 4가지 조건 중 하나이므로 코드를 더 빠르게 실행하기 위해 합산 조건과 마찬가지로 if와 연결할 수 없습니다. 당신은 나에게 무엇을 조언할 수 있습니까? 조언에 미리 감사드립니다!
인쇄 또는 주석에 표시할 변수를 문자열 DoubleToStr (이중 값, 정수 숫자)로 변경하고 필요한 정밀도를 설정합니다.
https://docs.mql4.com/en/convert/DoubleToStr
https://docs.mql4.com/ru/common/comment
알았어 고마워. 이것도 해보고 싶다, 아니면 ObjecCreate() 를 통해 낙서를 할까 하다가..
마지막 주문부터 손실 주문까지 계산하는 기능을 알려주세요...
감사하다!
OrderProfit(), OrderType() 등을 사용하기 전에 OrderSelect 를 몇 번이나 호출해야 합니까? Start 내에서 한 번으로 충분합니까 아니면 OrderProfit, OrderType 등을 사용하기 전에 매번... OrderSelect를 호출해야 합니까 ??
그리고 OrderProfit 직전에 OrderSelect를 호출해야 하는지 아니면 처음에 아무데나 호출할 수 있는지 여부는 ??
나는 질문을 썼고 아무도 눈치 채지 못했습니다. 나는 모든 사람들을 혼란스럽게하지 않기 위해 여기에 그렇게 긴 질문을 쓰고 싶지 않았습니다. 참고하세요...
https://www.mql5.com/ru/forum/142983
다음과 같이 시도하십시오.
당신의 주문이 정확히 같은 가격에 정확히 같은 시간에 열렸다는 보장이 없기 때문입니다.
나는 질문을 썼고 아무도 눈치 채지 못했습니다. 나는 모든 사람들을 혼란스럽게하지 않기 위해 여기에 그렇게 긴 질문을 쓰고 싶지 않았습니다. 참고하세요...
https://www.mql5.com/ru/forum/142983
나는 이미 그 스레드에서 대략적인 알고리즘을 작성했으며(여기서 약간의 뉘앙스를 고려하는 더 나은 이해를 위해 약간 수정했습니다) 정원을 울타리로 묶을 필요가 없습니다.
알고리즘은 도넛처럼 간단합니다.
부분 닫힘은 마법을 변경하지 않습니다. 티켓은 변경되지만 매직은 변경되지 않습니다.
열린 포즈가 있고 이 포즈가 부분적으로 닫혀야 하는 수준이 있습니다.
레벨 1, 레벨 2, 레벨 3을 가정해 봅시다.
매수 포지션이 이익이고 Bid >= Level1 && Bid< Level2 ---> 포지션의 첫 번째 부분을 마감하는 경우(나머지 로트가 최소값보다 작지 않은 경우 이 포지션의 로트보다 훨씬 적은 금액으로) 많은), 다음:
Bid >= Level2 && Bid< Level3 ---> 포지션의 두 번째 부분을 마감하는 경우(나머지 로트가 최소 로트보다 작지 않은 경우 이 포지션의 로트보다 로트가 작음):
Bid >= Level3 && Bid<Level4 ---> 포지션의 세 번째 부분을 마감하는 경우(나머지 로트가 최소 로트보다 작지 않은 경우 이 포지션의 로트보다 로트가 적음):
1. Bid>=LevelX 수준에서 부분 청산 후 최소 로트 미만이 된 경우 ---> 전체 포지션 청산
2. Bid>=Level3 레벨에서 세 번째 클로징 후에도 여전히 위치가 있는 경우 레벨4를 극복한 후 나머지 포즈와 함께 트롤을 동반하거나 한 번에 모두 닫습니다.
그게 다야
Sell의 경우 Ask: Ask<=Level1 && Ask>Level2 ... 등을 보십시오. ...
우리는 모든 포즈를 순환하고, 인덱스별로 각각을 선택하고, 선택한 위치에 대한 레벨과 닫힌 로트를 계산하고 작업 알고리즘을 즐깁니다... :)
동시에 이러한 수준의 값을 Expert Advisor의 메모리(변수)에 저장할 필요가 없으므로 매우 편리합니다. 레벨에 대한 데이터 손실 - 즉석에서 각 위치에 대해 다시 계산합니다.
그리고 한 가지 더: 부분적으로 닫은 후에는 보호 스톱을 조이는 것을 잊지 마십시오. 레벨 1에서 종가 후 - 손익분기점에서 정지, 레벨 2에서 종료 후 - 레벨 1에서 정지, 레벨 3에서 종료 후 - 레벨 2에서 정지 등 ...
안녕하세요! 사용자 지정 지표를 사용하는 Expert Advisor의 예가 있는 사람이 있습니까?
뭐가 문제 야?
사용자 지정 지표를 EA 코드로 전송하는 방법 에 대한 기사를 읽고 혼란스러워 했습니다. 그만한 가치가 있습니까? 아니면 코드에서 특정 지표 매개변수를 지정하는 것으로 충분합니까?
사용자 지정 지표를 EA 코드로 전송하는 방법에 대한 기사를 읽고 혼란스러워 했습니다. 그만한 가치가 있습니까? 아니면 코드에서 특정 지표 매개변수를 지정하는 것으로 충분합니까?
수수께끼 하나를 풀 수 있나요: 왜, 내가 이 함수를 조건에 삽입했을 때 || isCloseLastPosByTake() == 참 || 테스터의 전문가는 속도가 많이 느려지기 시작했는데, 10배!? 이것은 상호 배타적인 4가지 조건 중 하나이므로 코드를 더 빠르게 실행하기 위해 합산 조건과 마찬가지로 if와 연결할 수 없습니다. 당신은 나에게 무엇을 조언할 수 있습니까? 조언에 미리 감사드립니다!