사용자 지정 표시기 를 사용하기 위해 EA를 작성하는 중입니다. 백테스트할 때 iCustom 함수를 호출할 때마다 표시기의 새로운 instande를 로드하는 것으로 보입니다. 누구든지 사용자 지정 표시기를 한 번 로드하고 각 연속에서 이에 대한 참조를 로드하는 방법을 알고 있습니까?
전략 테스터 는 이 EA의 궁극적인 목표가 아닙니다. 차트에서 실시간으로 실행하는 것입니다. iCustom() 로딩은 충분한 메모리가 있는 한 차트에서 한 번 발생하므로 Strategy Tester의 특성에 맞는 작업에 많은 시간을 할애하지 않을 것입니다. iCustom()에 대한 유일한 다른 대안은 EA에서 직접 지표를 코딩하는 것입니다.
나는 그것을 EA로 다시 코딩하는 것에 대해 생각했다.... 나는 이것이 이 경우에 실용적이지 않을 것이라고 결정했다. 표시기에서 #property indicator_separate_window 를 주석 처리하면 호출이 완료되면 로드 및 언로드됩니다. 저는 메인 코딩을 끝내고 일주일 정도 데모하고 메모리 사용량을 모니터링할 예정입니다. 감사합니다. 어떻게 진행되는지 알려드리겠습니다.
사용자 지정 표시기 에서 사용하는 가격에 따라 다릅니다. 사용자 지정 표시기가 현재 양초 개발 중에 변경되는 종가, 고가, 저가 또는 기타 가격을 사용하는 경우 [0] 지수의 값이 변경됩니다.
예를 들어 사용자 정의 가격을 사용하는 표시기를 호출하고 값을 비교 [0]하고 막대가 닫힌 후 [1]의 결과와 비교하면 값이 다를 것이라는 것은 계란이 계란이기 때문에 거의 확실합니다. 그러나 사용자 지정 표시기를 종가 대신 OPEN 가격을 사용하도록 설정하면 값은 동일합니다(단순히 캔들 개발 중에 시가가 변경되지 않기 때문입니다)
icustom 함수를 사용하여 두 개의 시간 프레임이 동일한 버퍼를 얻는 예가 있습니까?
2 tf 버퍼의 이름이 같으므로 다른 시간 프레임을 어떻게 결정할 수 있습니까?
현재 시간 프레임
이중 추세 = iCustom(NULL, 1, "HA01", 0, 1500, 0, 0);
더 높은 시간 프레임
이중 추세 = iCustom(NULL, 5, "HA01", 0, 1500, 0, 1);
그런 다음 필요에 따라 2개의 변수를 사용합니다(예: if (trend1minute == ... && trend5minute ==... ) do something)
icustom 함수를 사용하여 두 개의 시간 프레임이 동일한 버퍼를 얻는 예가 있습니까?
2 tf 버퍼의 이름이 같으므로 다른 시간 프레임을 어떻게 결정할 수 있습니까?
현재 시간 프레임
이중 추세 = iCustom(NULL, 1, "HA01", 0, 1500, 0, 0);
더 높은 시간 프레임
이중 추세 = iCustom(NULL, 5, "HA01", 0, 1500, 0, 1);EA, 단일 인스턴스에서 iCustom 사용
모두들 안녕,
사용자 지정 표시기 를 사용하기 위해 EA를 작성하는 중입니다. 백테스트할 때 iCustom 함수를 호출할 때마다 표시기의 새로운 instande를 로드하는 것으로 보입니다. 누구든지 사용자 지정 표시기를 한 번 로드하고 각 연속에서 이에 대한 참조를 로드하는 방법을 알고 있습니까?
void OnBar()
{
RSIPL = iCustom(NULL,0,"NCH_DI",0,4,BarIndex);
TSL = iCustom(NULL,0,"NCH_DI",0,5,BarIndex);
HAOpen = iCustom(NULL,0,"HeikenAshi",0,2,BarIndex);
HAClose = iCustom(NULL,0,"HeikenAshi",0,3,BarIndex);
PACHigh = iMA(NULL,0,5,0,MODE_SMMA,PRICE_HIGH,BarIndex);
PACLow = iMA(NULL,0,5,0,MODE_SMMA,PRICE_LOW,BarIndex);
// DO MY OTHER STUFF HERE
}
위의 코드는 호출할 때마다 NCH_DI의 새 인스턴스를 로드합니다........
감사해요
할 수 없다
그것이 MT4가 작동하는 방식입니다. 가장 좋은 해결책은 코드에서 iCustom() 호출 수를 최소화하는 것입니다. HA는 일반적으로 새 막대가 형성될 때만 호출하면 됩니다. 모든 틱 을 호출하는 것은 최적이 아닙니다.
그것이 MT4가 작동하는 방식입니다. 가장 좋은 해결책은 코드에서 iCustom() 호출 수를 최소화하는 것입니다. HA는 일반적으로 새 막대가 형성될 때만 호출하면 됩니다. 모든 틱을 호출하는 것은 최적이 아닙니다.
새로운 바 구성에 대한 모든 요청이 있습니다. NCH_DI는 불행히도 비교적 메모리 집약적인 코드 조각입니다. 이전 인스턴스를 덤프할 수 있는 방법에 대한 제안 사항이 있습니까?
이 시도
전략 테스터 는 이 EA의 궁극적인 목표가 아닙니다. 차트에서 실시간으로 실행하는 것입니다. iCustom() 로딩은 충분한 메모리가 있는 한 차트에서 한 번 발생하므로 Strategy Tester의 특성에 맞는 작업에 많은 시간을 할애하지 않을 것입니다. iCustom()에 대한 유일한 다른 대안은 EA에서 직접 지표를 코딩하는 것입니다.
나는 그것을 EA로 다시 코딩하는 것에 대해 생각했다.... 나는 이것이 이 경우에 실용적이지 않을 것이라고 결정했다. 표시기에서 #property indicator_separate_window 를 주석 처리하면 호출이 완료되면 로드 및 언로드됩니다. 저는 메인 코딩을 끝내고 일주일 정도 데모하고 메모리 사용량을 모니터링할 예정입니다. 감사합니다. 어떻게 진행되는지 알려드리겠습니다.
iCustom 표시기 의 문제
안녕하세요,
내 EA는 iCustom과 함께 자체 지표를 사용하고 있습니다.
새 양초를 열면 표시기가 iCustom에 의해 호출됩니다.
이제 iCustom[1]의 값이 이전 막대의 iCustom[0]과 같지 않다는 것을 깨달았습니다.
값은 비슷하지만 정확히 같지는 않습니다. shud와 RSI fe에 대해 확인한 값
문제가 어디에 기반을 둘 수 있는지 아십니까?
그것에 대한 모든 힌트를 주셔서 감사합니다.
카밀로
사용자 지정 표시기 에서 사용하는 가격에 따라 다릅니다. 사용자 지정 표시기가 현재 양초 개발 중에 변경되는 종가, 고가, 저가 또는 기타 가격을 사용하는 경우 [0] 지수의 값이 변경됩니다.
예를 들어 사용자 정의 가격을 사용하는 표시기를 호출하고 값을 비교 [0]하고 막대가 닫힌 후 [1]의 결과와 비교하면 값이 다를 것이라는 것은 계란이 계란이기 때문에 거의 확실합니다. 그러나 사용자 지정 표시기를 종가 대신 OPEN 가격을 사용하도록 설정하면 값은 동일합니다(단순히 캔들 개발 중에 시가가 변경되지 않기 때문입니다)
Thx 빠른 답변, Kalenzo.
[2]에 대한 값을 확인 하고 [1] -> [2]에 대해 모든 것이 괜찮아 보인다는 것을 깨달았습니다.
여기에 내 지표 값의 예가 있습니다.
.... [0]...........[1]...[2]
t4 31,8711 42,6700 52,1915
t3 44,6881 52,1915 60,3014
t2 53,0572 60,3014 67,6553
t1 59,8860 67,6553 74,5797
그래서 문제는 바의 오프닝을 식별하는 것 같습니다.
나는 전에 검사로 사용하고 있습니다.
if(볼륨[0]>1) 반환;
괜찮지 않아?