int BarLastOpenPose() { 날짜 시간 t; for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol()!=Symbol()) 계속 (OrderType()>1) 계속하면; if (t<OrderOpenPrice()) t=OrderOpenPrice(); } }
int BarLastOpenPose() { 날짜 시간 t; for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol()!=Symbol()) 계속 (OrderType()>1) 계속하면; if (t<OrderOpenPrice()) t=OrderOpenPrice(); } }
int BarLastOpenPose() { 날짜 시간 t; for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol()!=Symbol()) 계속 (OrderType()>1) 계속하면; if (t<OrderOpenPrice()) t=OrderOpenPrice(); } }
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_READ); //- 빈 파일의 경우 위치 복사 - 위치 = 0 if (파일크기(file_handle_bala)>0) { 균형=FileReadDouble(file_handle_bala,DOUBLE_VALUE); 경보(균형); -------------------------------------- 여기가 0이 가는 곳입니다. 이전에 저장된 잔액 파일 닫기(file_handle_bala); if (AccountBalance()>balance) ------------------------------ 그리고 어떤 이유로 이 규칙은 경고 때문에 실행되지 않습니다. 아래는 아무것도 표시하지 않습니다 { file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_WRITE); 잔액=계정잔액(); 경보(균형); FileWriteInteger(file_handle_bala,balance,DOUBLE_VALUE); 파일 닫기(file_handle_bala); } } else // 파일이 비어있는 경우 { 파일 닫기(file_handle_bala); // 먼저 열려 있는 파일을 닫습니다. file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_WRITE); // 쓰기 위해 엽니다. 잔액=계정잔액(); FileWriteDouble(file_handle_bala, 균형, DOUBLE_VALUE); 파일 닫기(file_handle_bala); }
안녕하세요. 주문이 열렸을 때 막대 수를 반환해야 하는 함수를 작성했습니다.
int BarLastOpenPose()
{
날짜 시간 t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) 계속
(OrderType()>1) 계속하면;
if (t<OrderOpenPrice()) t=OrderOpenPrice();
}
}
반환(iBarShift(Symbol(),Period(),t,true));
}
그러나 항상 -1을 반환합니다. 내가 어디 잘못갔어? 미리 감사드립니다.
안녕하세요. 주문이 열렸을 때 막대 수를 반환해야 하는 함수를 작성했습니다.
int BarLastOpenPose()
{
날짜 시간 t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) 계속
(OrderType()>1) 계속하면;
if (t<OrderOpenPrice()) t=OrderOpenPrice();
}
}
반환(iBarShift(Symbol(),Period(),t,true));
}
그러나 항상 -1을 반환합니다. 내가 어디 잘못갔어? 미리 감사드립니다.
어쩌면 그렇게:
반환( iBarShift (Symbol(),Period(),t)); 즉, 사실 없이.
안녕하세요. 주문이 열렸을 때 막대 수를 반환해야 하는 함수를 작성했습니다.
int BarLastOpenPose()
{
날짜 시간 t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) 계속
(OrderType()>1) 계속하면;
if (t<OrderOpenPrice()) t=OrderOpenPrice();
}
}
반환(iBarShift(Symbol(),Period(),t,true));
}
그러나 항상 -1을 반환합니다. 내가 어디 잘못갔어? 미리 감사드립니다.
변수 t는 정수로 선언되지만 시가 가 할당됩니다.
변수 t는 정수로 선언되지만 시가가 할당됩니다.
그러한 상태를 어떻게 설명할 수 있습니까?
말해 주세요.
현재 날짜의 처음 5분 막대의 극한값(예: 높음)이 현재 날짜(일일)의 극한값과 일치하면 우리는 무언가를 합니다. 이것을 어떻게 설명해야 할까요?
좋은 사람들을 도와주세요!!!
안녕하세요, 리소스 사용자 여러분!
파일에 실수를 읽거나 쓰는 데 직면 한 사람을 도와주세요.
작업은 파일에서 잔액을 읽는 것입니다. 현재 잔액이 더 크면 파일을 덮어씁니다.
문제는 항상 0(영)을 출력한다는 것입니다.
정수 쓰기/읽기에서 이러한 문제를 찾지 못했습니다.
코드는 다음과 같습니다.
이중 균형;
int file_handle_bala;
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_READ);
//- 빈 파일의 경우 위치 복사 - 위치 = 0
if (파일크기(file_handle_bala)>0)
{
균형=FileReadDouble(file_handle_bala,DOUBLE_VALUE);
경보(균형); -------------------------------------- 여기가 0이 가는 곳입니다. 이전에 저장된 잔액
파일 닫기(file_handle_bala);
if (AccountBalance()>balance) ------------------------------ 그리고 어떤 이유로 이 규칙은 경고 때문에 실행되지 않습니다. 아래는 아무것도 표시하지 않습니다
{
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_WRITE);
잔액=계정잔액();
경보(균형);
FileWriteInteger(file_handle_bala,balance,DOUBLE_VALUE);
파일 닫기(file_handle_bala);
}
}
else // 파일이 비어있는 경우
{
파일 닫기(file_handle_bala); // 먼저 열려 있는 파일을 닫습니다.
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_WRITE); // 쓰기 위해 엽니다.
잔액=계정잔액();
FileWriteDouble(file_handle_bala, 균형, DOUBLE_VALUE);
파일 닫기(file_handle_bala);
}
모두에게 미리 감사드립니다!!!
이 라인에 주목
FileWriteInteger(file_handle_bala,balance,DOUBLE_VALUE);
1. 코드를 좀 더 정중하고 친근하게 게시해야 합니다.
2. 8바이트의 정수를 쓰려고 합니다. MQL4에는 그러한 데이터 유형이 없습니다.
\내가 뭘 잘못했니? 실수가 왜 이렇게 많아? (최대값을 구해야 합니다. 마지막 10개 막대에 대한 표시기 값). 미리 감사드립니다.
모두에게 좋은 하루!
저는 첫 번째 봇을 작성하는 동시에 MQL 언어에 익숙해지고 있습니다. 테스트하는 동안 다음과 같은 문제가 발생했습니다.
OP_BUYSTOP 주문은 발주 직후 발생하지만 차트상으로는 가격이 목표치에 도달하지 않음(아래 참조)
USD/JPY,M5(비주얼)
날짜 2011.09.19
시간 02:15
열려 있는 76.903
높은 76.909
낮은 76.890
닫다 76.890
용량 66
모든 진드기를 테스트합니다.
OP_BUYSTOP 주문을 잘못 이해한 것일까요? 가격이 일정 금액을 넘으면 사야겠죠?
주문을 하는 소스 코드 조각
int ticket=OrderSend(Symb, OP_BUYSTOP, Lot, Price, 0, SL, TP);
\내가 뭘 잘못했니? 실수가 왜 이렇게 많아? (최대값을 구해야 합니다. 마지막 10개 막대에 대한 표시기 값). 미리 감사드립니다.
Hi 함수를 선언합니다.
start() 함수 내부