[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 3. - 페이지 214

 

안녕하세요. 주문이 열렸을 때 막대 수를 반환해야 하는 함수를 작성했습니다.

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을 반환합니다. 내가 어디 잘못갔어? 미리 감사드립니다.

 
first_may :

안녕하세요. 주문이 열렸을 때 막대 수를 반환해야 하는 함수를 작성했습니다.

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)); 즉, 사실 없이.

 
first_may :

안녕하세요. 주문이 열렸을 때 막대 수를 반환해야 하는 함수를 작성했습니다.

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는 정수로 선언되지만 시가 가 할당됩니다.

 
Vinin :

변수 t는 정수로 선언되지만 시가가 할당됩니다.

정확히는 OrderOpenTime()을 작성 하고 싶었지만 OrderOpenPrice() 를 작성 했습니다.
 
덕분에 제 실수를 깨달았습니다.
 

그러한 상태를 어떻게 설명할 수 있습니까?



화신
열셋
4압생트 25.09.2011 19:23

말해 주세요.

현재 날짜의 처음 5분 막대의 극한값(예: 높음)이 현재 날짜(일일)의 극한값과 일치하면 우리는 무언가를 합니다. 이것을 어떻게 설명해야 할까요?


로저 25.09.2011 20:25 편집 | 삭제
if(MathAbs(High[1]-iHigh(NULL,PERIOD_D1,0))<포인트)
 

좋은 사람들을 도와주세요!!!



화신
하나
처진 25.09.2011 19:34

안녕하세요, 리소스 사용자 여러분!

파일에 실수를 읽거나 쓰는 데 직면 한 사람을 도와주세요.

작업은 파일에서 잔액을 읽는 것입니다. 현재 잔액이 더 크면 파일을 덮어씁니다.

문제는 항상 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);
}

모두에게 미리 감사드립니다!!!


화신
2222
로저 25.09.2011 20:22

이 라인에 주목

FileWriteInteger(file_handle_bala,balance,DOUBLE_VALUE);


3461
준코 25.09.2011 20:27

1. 코드를 좀 더 정중하고 친근하게 게시해야 합니다.

2. 8바이트의 정수를 쓰려고 합니다. MQL4에는 그러한 데이터 유형이 없습니다.

 

\내가 뭘 잘못했니? 실수가 왜 이렇게 많아? (최대값을 구해야 합니다. 마지막 10개 막대에 대한 표시기 값). 미리 감사드립니다.

 

모두에게 좋은 하루!

저는 첫 번째 봇을 작성하는 동시에 MQL 언어에 익숙해지고 있습니다. 테스트하는 동안 다음과 같은 문제가 발생했습니다.

OP_BUYSTOP 주문은 발주 직후 발생하지만 차트상으로는 가격이 목표치에 도달하지 않음(아래 참조)

아니요. 시간 유형 주문하다 용량 가격 S/L T/P 이익 균형
하나 2011.09.19 02:10 구매 중지 하나 0.01 76.935 76.735 77.135
2 2011.09.19 02:10 구입 하나 0.01 76.935 76.735 77.135

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);

모든 분들께 미리 감사드립니다!

 
Shniperson :

\내가 뭘 잘못했니? 실수가 왜 이렇게 많아? (최대값을 구해야 합니다. 마지막 10개 막대에 대한 표시기 값). 미리 감사드립니다.

Hi 함수를 선언합니다.

 double Hi( int pos= 0 )
start() 함수 내부
사유: