griha : 고문의 행동을 파일에 기록하고 싶습니다 MQL 편집기에 대한 참조에서 예제를 가져와 약간 수정했습니다.
결과적으로 OrdersReport.csv 파일은 비어 있지만 주문이 열려 있습니다.
읽기 쓰기를 위해 파일을 열고 쓰기를 시도할 때 동일한 문제가 발생했습니다. 파일이 생성되지 않거나 아무 것도 기록되지 않습니다.
서비스 데스크 요청:
FILE_READ|FILE_WRITE 키로 연 텍스트 파일에 추가하려고 할 때 먼저 FileSeek() 함수로 파일 포인터를 명시적으로 설정하지 않고 쓰기가 전혀 발생하지 않습니다.
이전 버전의 터미널에서는 FileReadString() 함수를 사용하여 텍스트 파일을 읽을 때 파일 포인터가 자동으로 설정되었습니다.
다음은 개발자의 답변입니다.
파일 기능의 마지막 변경 사항은 2008년 중반으로 거슬러 올라갑니다.
이전에는 파일 포인터를 끝으로 먼저 설정하지 않고 파일에 추가할 수 없었습니다.
자세한 내용은 또 다른 질문입니다. 파일 끝에 추가하는 것과 관련이 있습니까?
모든 파일 읽기/쓰기 작업은 자동으로 파일 포인터를 이동합니다. 항상 그래왔고 변하지 않았습니다. 그러나 파일을 csv로 열면 중간 데이터 버퍼링이 가능합니다. 그러면 파일 포인터가 예상한 위치에 없을 수 있습니다. 반복합니다. 이전 버전과 이전 버전 모두 공식 릴리스 초기부터 항상 이와 같았습니다.
우리는 침묵의 원칙이 극도로 해롭다는 것을 여러 번 반복했습니다. 파일 포인터 포함. 연속 읽기 또는 연속 쓰기(특히 읽기-쓰기 혼합의 특이한 경우)를 사용하지 않는 한 파일 포인터를 명시적으로 처리합니다.
귀하의 EA는 30분 ADX 신호로 거래되고 있습니다. 어드바이저가 1min ADX 신호에서 거래하는 경우 이러한 신호는 첫 번째 옵션보다 더 자주 제공됩니다. 귀하 버전의 스크린샷은 BUY 포지션을 열 때만 촬영됩니다. 테스트 모드에서 스크린샷의 차트에 표시기 이미지가 없는 것에 관심이 있습니다. 스크린샷의 표시기가 데모 모드에 있는지 확인하라는 요청을 받았습니다. 많은 시간을 기다리지 않고 빠르게 문제를 확인하고 이해할 수 있도록 해당 기능과 함께 스크립트를 게시했습니다. 하루 이상이 지났습니다. 나는 당신의 결과가 무엇인지 알고 싶습니다?
함수에서 이름을 정의할 때와 변수에 이름을 할당한 다음 함수에 변수를 전달할 때의 차이점이 무엇인지 알려주세요.
//-------------- первый вариант (рабочий)string up_line = "upline_" , down_line = "downline_" ;
flatlineup( up_line+ TimeToStr (Time[i]) , y2,x2,y22,x2, Red , 1 ); Имя присваиваю в теле функции
flatlinedown( down_line+ TimeToStr (Time[i]) , y1,x1,y11,x1, Blue , 1 );
dellline(up_line, down_line);
TimeToStr (Time[i]) указывал в имени тренд лайн в теле функции
//--------------- второй вариант (нерабочий)string up_line = "upline_" + TimeToStr (Time[i]);//--или пробовал StringConcatenate() ИМЯ ПРИСВАИВАЮ В ПЕРЕМЕННОЙstring down_line = "downline_" + TimeToStr (Time[i]);//--или пробовал StringConcatenate()
flatlineup(up_line, y2,x2,y22,x2, Red , 1 ); ПЕРЕДАЮ ПЕРЕМЕННУЮ В ФУНКЦИЮ
flatlinedown(down_line, y1,x1,y11,x1, Blue , 1 );
dellline(up_line, down_line);
이렇게 놔두는데 다른 방법은 모르겠고.......)
그래서..
고문의 행동을 파일에 기록하고 싶습니다
MQL 편집기에 대한 참조에서 예제를 가져와 약간 수정했습니다.
결과적으로 OrdersReport.csv 파일은 비어 있지만 주문이 열려 있습니다.
읽기 쓰기를 위해 파일을 열고 쓰기를 시도할 때 동일한 문제가 발생했습니다. 파일이 생성되지 않거나 아무 것도 기록되지 않습니다.
서비스 데스크 요청:
FILE_READ|FILE_WRITE 키로 연 텍스트 파일에 추가하려고 할 때 먼저 FileSeek() 함수로 파일 포인터를 명시적으로 설정하지 않고 쓰기가 전혀 발생하지 않습니다.
이전 버전의 터미널에서는 FileReadString() 함수를 사용하여 텍스트 파일을 읽을 때 파일 포인터가 자동으로 설정되었습니다.
다음은 개발자의 답변입니다.
파일 기능의 마지막 변경 사항은 2008년 중반으로 거슬러 올라갑니다.
이전에는 파일 포인터를 끝으로 먼저 설정하지 않고 파일에 추가할 수 없었습니다.
자세한 내용은 또 다른 질문입니다. 파일 끝에 추가하는 것과 관련이 있습니까?
모든 파일 읽기/쓰기 작업은 자동으로 파일 포인터를 이동합니다. 항상 그래왔고 변하지 않았습니다. 그러나 파일을 csv로 열면 중간 데이터 버퍼링이 가능합니다. 그러면 파일 포인터가 예상한 위치에 없을 수 있습니다. 반복합니다. 이전 버전과 이전 버전 모두 공식 릴리스 초기부터 항상 이와 같았습니다.
우리는 침묵의 원칙이 극도로 해롭다는 것을 여러 번 반복했습니다. 파일 포인터 포함. 연속 읽기 또는 연속 쓰기(특히 읽기-쓰기 혼합의 특이한 경우)를 사용하지 않는 한 파일 포인터를 명시적으로 처리합니다.
결론: FileSeek 사용
있다.
귀하의 EA는 30분 ADX 신호로 거래되고 있습니다. 어드바이저가 1min ADX 신호에서 거래하는 경우 이러한 신호는 첫 번째 옵션보다 더 자주 제공됩니다. 귀하 버전의 스크린샷은 BUY 포지션을 열 때만 촬영됩니다.
테스트 모드에서 스크린샷의 차트에 표시기 이미지가 없는 것에 관심이 있습니다. 스크린샷의 표시기가 데모 모드에 있는지 확인하라는 요청을 받았습니다. 많은 시간을 기다리지 않고 빠르게 문제를 확인하고 이해할 수 있도록 해당 기능과 함께 스크립트를 게시했습니다. 하루 이상이 지났습니다. 나는 당신의 결과가 무엇인지 알고 싶습니다?
계속 알려 드리겠습니다. 바쁘네요 내일 확인해봐야겠네요
함수에서 이름을 정의할 때와 변수에 이름을 할당한 다음 함수에 변수를 전달할 때의 차이점이 무엇인지 알려주세요.
미리 감사드립니다.
가능합니다, 그것은 나를 위해 작동합니다
더블 BullPrice()
{
이중 BullAveragePrice=0;
이중 MySummBullLots=0;
for (int i = OrdersTotal() - 1, i >= 0, i--)
{
주문 선택(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol()) 계속;
if (OrderSymbol() == Symbol() && OrderType() == OP_BUY)
{
BullAveragePrice+=OrderOpenPrice()*OrderLots();
MySummBullLots+=OrderLots();
}
}
if (MySummBullLots>0) BullAveragePrice = NormalizeDouble (BullAveragePrice / MySummBullLots, 자릿수);
반환(불 평균 가격);
}
MT4 폴더에는 MQL4의 모든 경우에 대한 C++ 코드의 예가 있습니다. 해당 코드를 컴파일하고 거기에 붙여넣습니다. 당신은 당신과 예 사이의 차이점을 즉시 발견할 것입니다.
함수에서 이름을 정의할 때와 변수에 이름을 할당한 다음 함수에 변수를 전달할 때의 차이점이 무엇인지 알려주세요.
그래서..
상황이 이렇다고 말해줘, 나는 이렇게 csv 파일을 읽었다
그러나 csv 파일에는 첫 번째 추가 줄인 헤더가 있습니다.
프로그래밍 방식으로 첫 번째 줄을 건너뛰거나 값을 저장하는 동안 일반적으로 프로그래밍 방식으로 삭제하는 방법은 모든 것을 망칩니다.
미리 감사드립니다.