얘들 아,
내 눈은 피를 흘리고있다
누구든지 내 코드에 무엇이 문제인지 알 수 있습니까? 지금 몇 시간 동안 노력해 왔습니다.
차트에 첨부할 때 오류: 배열이 범위를 벗어났습니다. - 이 줄에서: double current_high = High[current_bar_index];
삽입된 코드 int ThisBarTrade = 0;/ ----------------------------------------------- ------------------- /| 커스텀 인디케이터 초기화 기능 |/ ----------------------------------------------- ------------------- int OnInit() {/--- 표시기 버퍼 매핑/indi가 다시 로드될 때마다(즉, TF 간 전환, 새 적용 , etc ...),/현재 막대는 조건을 확인하지 않습니다. ThisBarTrade = 시간#91;0#93;;/--- return(INIT_SUCCEEDED); }/ ---------------------------------------------- -------------------- /| 고객 표시기 초기화 해제 기능 |/ ----------------------------------------------- ------------------- int deinit() { return(0); }/ ---------------------------------------------- -------------------- /| 사용자 지정 표시기 반복 기능 |/ ----------------------------------------------- ------------------- int OnCalculate(const int Rates_total, const int prev_calculated, const datetime time#91;#93;, const double open#91;#93; , const 이중 고#91;#93;, const 이중 저가#91;#93;, const 이중 닫기#91;#93;, const long tick_volume#91;#93;, const long volume#91;#93; , const int spread#91;#93;) {/--- 문자열 쌍#91;#93; 정수 길이 = getAvailableCurrencyPairs(쌍); if (바 != ThisBarTrade ) { ThisBarTrade = 바;/막대당 하나의 거래 기회만 보장/기호를 통해 루프 for(int i=0; i lt; length; i ) {/Alert(Pair #, i 1, : , pairs#91;i#93; );/인덱스 가져오기 int current_bar_index = iHighest(pairs#91;i#93;, PERIOD_M5, MODE_HIGH, 1, 0); int previous_bar_index = iHighest(쌍#91;i#93;, PERIOD_M5, MODE_HIGH, 1, 1); int current_bar_index_low = iLowest(쌍#91;i#93;, PERIOD_M5, MODE_LOW, 1, 0); int previous_bar_index_low = iLowest(pairs#91;i#93;, PERIOD_M5, MODE_LOW, 1, 1);/가격을 두배로 받기 current_high = High#91;current_bar_index#93;; 이중 이전_높음 = 높음#91;이전_바_색인#93;; 이중 current_low = 낮음#91;current_bar_index_low#93;; 이중 이전_낮음 = 낮음#91;이전_바_인덱스_낮음#93;;/논리 - 시작 if (( previous_low 1.0 * Point ) gt; current_low || ( previous_high - 1.0 * Point ) lt; current_high ) { Alert(Pair #, i 1, : , pairs#91;i#93; , 더 높거나 더 낮음); }/Logic - End }/for length }/if Bars/--- 다음 호출을 위해 prev_calculated 값을 반환 return(rates_total); }/ ---------------------------------------------- -------------------- // ----------------------------------------------- ------------------- int getAvailableCurrencyPairs(string availableCurrencyPairs#91;#93;) {/--- bool selected = false; const int symbolCount = SymbolsTotal(선택됨); int 통화 쌍 수; ArrayResize(availableCurrencyPairs,symbolsCount); 정수 idxCurrencyPair = 0; for(int idxSymbol = 0; idxSymbol lt; symbolCount; idxSymbol ) { 문자열 기호 = SymbolName(idxSymbol, 선택됨); 문자열 firstChar = StringSubstr(기호, 0, 1); if(firstChar != # StringLen(symbol) == 6) { availableCurrencyPairs#91;idxCurrencyPair #93; = 기호; } } 통화 쌍 수 = idxCurrencyPair; ArrayResize(availableCurrencyPairs, currencypairsCount); 반환 CurrencypairsCount; }/ ---------------------------------------------- -------------------- 클래스 CFix { } ExtFix;/디버깅하는 동안 강제 표현식 평가