문제가 있습니다. 함수(아래 참조)를 사용하여 기록에서 위치 ID별로 TakeProfit 및 StopLoss 값을 얻을 수 있습니다(즉, 위치가 이미 닫혀 있을 때), 이 함수는 실시간으로 작동하지만 어떤 이유로 결정할 수 없습니다 전략 테스터 의 TakeProfit 및 StopLoss , 스탑을 설정한 과거 주문을 볼 수 없기 때문입니다(포지션을 연 후 스탑을 설정하는 것이 중요함).
문제는 클로즈드 포지션 티켓으로 전략 테스터에서 이 포지션의 TP/SL을 찾는 방법입니다.
#include <Trade\DealInfo.mqh>
#include <Trade\HistoryOrderInfo.mqh>
CDealInfo deal;
CHistoryOrderInfo ord;
void GetPosStops( ulong ticket, int & tp, int & sl, double & lot){
HistorySelectByPosition (ticket);
tp= 0 ;sl= 0 ;
double open= 0 , tp_= 0 , sl_= 0 ;
string symbol= "" ;
ENUM_DEAL_TYPE type=- 1 ;
for ( int i= 0 ; i< HistoryDealsTotal (); i++){
if (!deal.SelectByIndex(i)) continue ;
if (deal.Entry() == DEAL_ENTRY_IN ){
open=deal.Price();
symbol=deal. Symbol ();
type=deal.DealType();
lot=deal.Volume();
break ;
}
}
for ( int i= 0 ; i< HistoryOrdersTotal (); i++){
if (!ord.SelectByIndex(i)) continue ;
if (tp_== 0 )tp_=ord.TakeProfit();
if (sl_== 0 )sl_=ord.StopLoss();
if (tp_> 0 && sl_> 0 ) break ;
}
if (symbol != "" ){
double coef=type== DEAL_TYPE_BUY ? 1 :- 1 ;
double point= SymbolInfoDouble (symbol, SYMBOL_POINT );
if (tp_> 0 && coef*tp_>coef*open)
tp=( int )( MathAbs (tp_-open)/point);
if (sl_> 0 && coef*sl_<coef*open)
sl=( int )( MathAbs (sl_-open)/point);
}
}
여러분, 안녕하세요 ! 저는 EA 프로그래밍을 시도 중이고 먼저 통계적 스프레드 수집기를 작성 하고 싶습니다. 내 말은, 그가 무엇을 해주기를 바라는가? 테스터는 EA를 시작하고 특정 시간(예: 10일) 동안의 틱 이력에 대한 데이터를 수집합니다. 그런 다음 다음 데이터를 csv 또는 xlsx 파일로 출력합니다. 해당 기간의 평균 스프레드: 00:00 - 09:00 서버 시간, 09:00 - 18:00, 18:00 - 00:00(전체 10일 동안), 이 시간의 최대 스프레드, 최소 스프레드 10일 동안의 통화쌍 평균 스프레드. 손으로 떼느라 정말 지쳤어요.
나는 그것을 스스로 하는 프로그램이 있다는 것을 알고 있다. 그러나 나는 운동으로서 나의 것을 원한다. 일부 전문가가 어디서부터 시작해야 하는지 알려줄 수 있습니까? 이런글도 쓸수있나요?
안녕하세요. 누군가가 준비된 코드를 가지고 있을지도 모릅니다. 2개의 매개변수가 있습니다. 보증금 = 3000 및 로트 0.01, 즉 3000의 보증금이 있는 경우 로트는 0.01이 됩니다. 이제 엄격하게 두 배로 증가할 때, 즉 보증금이 6000일 때 로트는 0.02가 되고 9000이 됩니다. 어떻게 해야 0.03이 될까요?
안녕하세요. 누군가가 준비된 코드를 가지고 있을지도 모릅니다. 2개의 매개변수가 있습니다. 보증금 = 3000 및 로트 0.01, 즉 3000의 보증금이 있는 경우 로트는 0.01이 됩니다. 이제 엄격하게 두 배로 증가할 때, 즉 보증금이 6000일 때 로트는 0.02가 되고 9000이 됩니다. 어떻게 해야 0.03이 될까요?
오류를 찾도록 도와주세요... 스크립트 에서 표시기 버퍼 에서 막대 값(BarsCount)을 복사한 다음 루프의 값을 무시하고 신호를 결정하고 이를 위해 Print()에 씁니다. 인쇄; 모든게 단순해 보이지만 거기엔 없었어... 제로라인 넘은거 빼고는 다 내가 원하는대로 신호를 받아
CROSSOVER_OR_REVERSE
지시자. 스크립트에서는 불가능할까요? 로그의 코드와 스크린샷을 첨부했습니다... 미리 감사합니다!
블라디미르 카르푸토프 와 나?)
확실히 말할 수는 없지만 0.0을 시도하십시오.
추가됨: MQL5를 사용하여 'INDICATOR_MINIMUM' 및 'INDICATOR_MAXIMUM'을 취소하는 것은 불가능해 보입니다.
확실히 말할 수는 없지만 0.0을 시도하십시오.
추가됨: MQL5를 사용하여 'INDICATOR_MINIMUM' 및 'INDICATOR_MAXIMUM'을 취소하는 것은 불가능해 보입니다.
아아..
답변 해주셔서 감사합니다.
(레벨은 일반적으로 같은 문제이지만 레벨의 수를 설정하여 해결)
아아..
답변 해주셔서 감사합니다.
(레벨은 일반적으로 같은 문제이지만 레벨의 수를 설정하여 해결)
실험하면 괜찮을 것입니다.
차트가 저장하는 속성 비교(' 스토캐스틱 오실레이터 ' 표시기의 예)
이것은 분명히 'bool' 유형의 속성이지만 MQL5 언어에서 이 속성에 액세스할 수 없습니다.
차트가 저장하는 속성 비교(' 스토캐스틱 오실레이터 ' 표시기의 예)
이것은 분명히 'bool' 유형의 속성이지만 MQL5 언어에서 이 속성에 액세스할 수 없습니다.
예, 아아.
다시 한 번 감사합니다)
문제가 있습니다. 함수(아래 참조)를 사용하여 기록에서 위치 ID별로 TakeProfit 및 StopLoss 값을 얻을 수 있습니다(즉, 위치가 이미 닫혀 있을 때), 이 함수는 실시간으로 작동하지만 어떤 이유로 결정할 수 없습니다 전략 테스터 의 TakeProfit 및 StopLoss , 스탑을 설정한 과거 주문을 볼 수 없기 때문입니다(포지션을 연 후 스탑을 설정하는 것이 중요함).
문제는 클로즈드 포지션 티켓으로 전략 테스터에서 이 포지션의 TP/SL을 찾는 방법입니다.
저는 EA 프로그래밍을 시도 중이고 먼저 통계적 스프레드 수집기를 작성 하고 싶습니다.
내 말은, 그가 무엇을 해주기를 바라는가? 테스터는 EA를 시작하고 특정 시간(예: 10일) 동안의 틱 이력에 대한 데이터를 수집합니다.
그런 다음 다음 데이터를 csv 또는 xlsx 파일로 출력합니다.
해당 기간의 평균 스프레드: 00:00 - 09:00 서버 시간, 09:00 - 18:00, 18:00 - 00:00(전체 10일 동안), 이 시간의 최대 스프레드, 최소 스프레드 10일 동안의 통화쌍 평균 스프레드.
손으로 떼느라 정말 지쳤어요.
나는 그것을 스스로 하는 프로그램이 있다는 것을 알고 있다. 그러나 나는 운동으로서 나의 것을 원한다.
일부 전문가가 어디서부터 시작해야 하는지 알려줄 수 있습니까? 이런글도 쓸수있나요?
초보자를 이해하고 대응해 주신 모든 분들께 미리 감사드립니다.
안녕하세요. 누군가가 준비된 코드를 가지고 있을지도 모릅니다. 2개의 매개변수가 있습니다. 보증금 = 3000 및 로트 0.01, 즉 3000의 보증금이 있는 경우 로트는 0.01이 됩니다. 이제 엄격하게 두 배로 증가할 때, 즉 보증금이 6000일 때 로트는 0.02가 되고 9000이 됩니다. 어떻게 해야 0.03이 될까요?
안녕하세요. 누군가가 준비된 코드를 가지고 있을지도 모릅니다. 2개의 매개변수가 있습니다. 보증금 = 3000 및 로트 0.01, 즉 3000의 보증금이 있는 경우 로트는 0.01이 됩니다. 이제 엄격하게 두 배로 증가할 때, 즉 보증금이 6000일 때 로트는 0.02가 되고 9000이 됩니다. 어떻게 해야 0.03이 될까요?
다음과 같이 다소:
결과:
안녕하세요,
오류를 찾도록 도와주세요... 스크립트 에서 표시기 버퍼 에서 막대 값(BarsCount)을 복사한 다음 루프의 값을 무시하고 신호를 결정하고 이를 위해 Print()에 씁니다. 인쇄; 모든게 단순해 보이지만 거기엔 없었어... 제로라인 넘은거 빼고는 다 내가 원하는대로 신호를 받아
CROSSOVER_OR_REVERSE
지시자. 스크립트에서는 불가능할까요? 로그의 코드와 스크린샷을 첨부했습니다... 미리 감사합니다!