FileSeek(파일,0,SEEK_END)가 있습니다. 모든 것이 새 줄 에서 파일에 기록됩니다.
문제는 4개의 파일이 있고 4개의 위치에 대한 데이터를 각각 별도의 파일에 작성해야 하며, 각 파일에는 이름에 위치 티켓이 있고 데이터는 마지막 파일, 마지막 파일에 데이터 하나만 기록된다는 것입니다. 위치.
파일 이름이 정확합니까? 대신 Ticket=OrderTicket(); 파일명=_티켓+기호()+".txt"; FileName=(string)OrderTicket()+Symbol()+".txt"를 작성합니다. 처음에는 #property strict 지시문을 추가합니다. 이는 오류를 제거하는 데 도움이 됩니다.
STARIJ : 파일 이름이 정확합니까? 대신 Ticket=OrderTicket(); 파일명=_티켓+기호()+".txt"; FileName=(string)OrderTicket()+Symbol()+".txt"를 작성합니다. 처음에는 #property strict 지시문을 추가합니다. 이는 오류를 제거하는 데 도움이 됩니다.
감사합니다. 추천에 따라 이름의 구성이 다시 수정되었지만 여전히 마지막 위치의 데이터만 씁니다.
그리고, 새 파일의 이름은 변경되지 않았습니다) 문제의 이름이 아닌 것으로 의심되며 마지막 위치의 파일이 이미 발견되었습니다.
1501896125EURUSD.txt 타임 세미 입찰 가격 2018.02.22 22:53 P 1.23259 0.88322 2018.02.22 22:54 P 1.23259 0.88322 2018.02.22 22:55 P 1.23259 0.88322 2018.02.22 22:56 P 1.23249 0.88322
1501896094EURUSD.txt 타임 세미 입찰 가격 2018.02.22 22:43 패 1.23212 1.23203 2018.02.22 22:44 패 1.23220 1.23203 2018.02.22 22:44 패 1.23224 1.23203 2018.02.22 22:45 패 1.23244 1.23203 2018.02.22 22:45 패 1.23242 1.23203 2018.02.22 22:46 패 1.23251 1.23203 뭔가 변경? 보세요... 여기 있습니다: string sy=""; 정수 연산=-1, mn=-1; 거의 필요하지 않습니다 ... 아마도 버리시겠습니까? 루프에서 중첩된 if() 대신 계속이 더 좋습니다.
1501896125EURUSD.txt 타임 세미 입찰 가격 2018.02.22 22:53 P 1.23259 0.88322 2018.02.22 22:54 P 1.23259 0.88322 2018.02.22 22:55 P 1.23259 0.88322 2018.02.22 22:56 P 1.23249 0.88322
1501896094EURUSD.txt 타임 세미 입찰 가격 2018.02.22 22:43 패 1.23212 1.23203 2018.02.22 22:44 패 1.23220 1.23203 2018.02.22 22:44 패 1.23224 1.23203 2018.02.22 22:45 패 1.23244 1.23203 2018.02.22 22:45 패 1.23242 1.23203 2018.02.22 22:46 패 1.23251 1.23203 뭔가 변경? 보세요... 여기 있습니다: string sy=""; 정수 연산=-1, mn=-1; 거의 필요하지 않습니다 ... 아마도 버리시겠습니까? 루프에서 중첩된 if() 대신 계속이 더 좋습니다.
그는 모든 직책을 기록하고 싶지 않습니다.
7포지션을 엽니다. 하나의 파일을 작성했습니다
고문이 차트에있을 때 편집 된 그는 첫 번째 위치와 마지막 위치의 데이터를 기록하기 시작했습니다. 이제 첫 번째 위치인 하나에만 데이터를 씁니다.
파일 쓰기를 위한 다음 조건을 포함하여 프로그램에는 많은 조건이 있습니다. if(t_pre+60< TimeCurrent() && _o_t+1800>TimeCurrent()) // 주문 개시 후 30분 동안 1분에 한 번. 그게 필요 할까? { t_pre=TimeCurrent(); 프로그램에는 분기가 포함되어 있습니다.
for (i= 0 ; i<k; i++)
{
if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
{
if ( OrderSymbol ()==sy || sy== "" )
{
if ( OrderType ()== OP_BUY ||
OrderType ()== OP_SELL )
{
if (op< 0 || OrderType ()==op)
{
if (mn< 0 || OrderMagicNumber ()==mn)
{
_o_t= OrderOpenTime ();
И еще 5 закрывающих скобок. а можно короче на 10 строк и понятнее записать так
for (i= 0 ; i<k; i++)
{
if ( ! OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) continue ; // если ошибка выбора ордера - переходим к следующемуif ( OrderSymbol ()!=sy && sy!= "" ) continue ; // а это вообще надо?if ( OrderType ()!= OP_BUY && OrderType ()!= OP_SELL ) continue ; // а другие разве у Вас есть?if (op>= 0 && OrderType ()!=op) continue ;
if (mn>= 0 && OrderMagicNumber ()!=mn) continue ;
_o_t= OrderOpenTime ();
왜 사다리로 글을 쓰곤 했습니까? 이전 버전의 MQL4에서는 실행 속도가 빨라졌습니다. 이제 상관없어 _o_t 변수는 2곳에서만 사용됩니다. 이를 OrderOpenTime()으로 대체하면 프로그램이 2줄(선언 및 할당)만큼 명확해지고 짧아집니다. datetime_o_t; 그리고 _o_t=주문오픈타임();
FileSeek (파일, 0 , SEEK_END )가 있습니다. 모든 것이 새 줄 에서 파일에 기록됩니다.
문제는 4개의 파일이 있고 4개의 위치에 대한 데이터를 각각 별도의 파일에 작성해야 하며, 각 파일에는 이름에 위치 티켓이 있고 데이터는 마지막 파일, 마지막 파일에 데이터 하나만 기록된다는 것입니다. 위치.
파일 이름이 정확합니까? 대신 Ticket=OrderTicket(); 파일명=_티켓+기호()+".txt"; FileName=(string)OrderTicket()+Symbol()+".txt"를 작성합니다. 처음에는 #property strict 지시문을 추가합니다. 이는 오류를 제거하는 데 도움이 됩니다.
감사합니다. 추천에 따라 이름의 구성이 다시 수정되었지만 여전히 마지막 위치의 데이터만 씁니다.
그리고, 새 파일의 이름은 변경되지 않았습니다) 문제의 이름이 아닌 것으로 의심되며 마지막 위치의 파일이 이미 발견되었습니다.
이전 위치를 무시하는 이유는 무엇입니까?
1501896125EURUSD.txt
타임 세미 입찰 가격
2018.02.22 22:53 P 1.23259 0.88322
2018.02.22 22:54 P 1.23259 0.88322
2018.02.22 22:55 P 1.23259 0.88322
2018.02.22 22:56 P 1.23249 0.88322
1501896094EURUSD.txt
타임 세미 입찰 가격
2018.02.22 22:43 패 1.23212 1.23203
2018.02.22 22:44 패 1.23220 1.23203
2018.02.22 22:44 패 1.23224 1.23203
2018.02.22 22:45 패 1.23244 1.23203
2018.02.22 22:45 패 1.23242 1.23203
2018.02.22 22:46 패 1.23251 1.23203
뭔가 변경? 보세요... 여기 있습니다: string sy=""; 정수 연산=-1, mn=-1; 거의 필요하지 않습니다 ... 아마도 버리시겠습니까? 루프에서 중첩된 if() 대신 계속이 더 좋습니다.
1501896125EURUSD.txt
타임 세미 입찰 가격
2018.02.22 22:53 P 1.23259 0.88322
2018.02.22 22:54 P 1.23259 0.88322
2018.02.22 22:55 P 1.23259 0.88322
2018.02.22 22:56 P 1.23249 0.88322
1501896094EURUSD.txt
타임 세미 입찰 가격
2018.02.22 22:43 패 1.23212 1.23203
2018.02.22 22:44 패 1.23220 1.23203
2018.02.22 22:44 패 1.23224 1.23203
2018.02.22 22:45 패 1.23244 1.23203
2018.02.22 22:45 패 1.23242 1.23203
2018.02.22 22:46 패 1.23251 1.23203
뭔가 변경? 보세요... 여기 있습니다: string sy=""; 정수 연산=-1, mn=-1; 거의 필요하지 않습니다 ... 아마도 버리시겠습니까? 루프에서 중첩된 if() 대신 계속이 더 좋습니다.
그는 모든 직책을 기록하고 싶지 않습니다.
7포지션을 엽니다. 하나의 파일을 작성했습니다
고문이 차트에있을 때 편집 된 그는 첫 번째 위치와 마지막 위치의 데이터를 기록하기 시작했습니다. 이제 첫 번째 위치인 하나에만 데이터를 씁니다.
6개가 누락된 것 같지만 경고 경고 (FileName)에는 티켓이 모두 있습니다.
그가 원하는 것은...
if(t_pre+60< TimeCurrent() && _o_t+1800>TimeCurrent()) // 주문 개시 후 30분 동안 1분에 한 번. 그게 필요 할까?
{
t_pre=TimeCurrent();
프로그램에는 분기가 포함되어 있습니다.
왜 사다리로 글을 쓰곤 했습니까? 이전 버전의 MQL4에서는 실행 속도가 빨라졌습니다. 이제 상관없어
_o_t 변수는 2곳에서만 사용됩니다. 이를 OrderOpenTime()으로 대체하면 프로그램이 2줄(선언 및 할당)만큼 명확해지고 짧아집니다.
datetime_o_t; 그리고
_o_t=주문오픈타임();
문제가 무엇인지 찾았습니다. 한 주기에 대해 60초의 카운트다운을 빼야 합니다.
안녕하세요, 친애하는 포럼 사용자 여러분.
동일한 설정을 최적화하고 테스트할 때 때때로 다른 결과가 나오는 이유를 말씀해 주시겠습니까?
SQ Tick Downloader에서 다운로드한 인용문 및 스크립트를 통해 실행
좋은 오후입니다.
동일한 설정을 최적화하고 테스트할 때 때때로 다른 결과가 나오는 이유를 말씀해 주시겠습니까?
더 말씀드리겠습니다. 실제 계정에서 거래할 때 2개의 다른 계정에 있는 한 브로커가 다른 결과를 가질 수 있습니다.
그것은 아마도 브로커에 더 의존합니다. 그러나 원래 질문에 도움을 줄 수 있습니까?
그것은 아마도 브로커에 더 의존합니다. 그러나 원래 질문에 도움을 줄 수 있습니까?