코딩하는 방법? - 페이지 63

 

막대 시작 시에만 주문을 여는 방법 ??

안녕,

두 번째 이전 막대와 이전 막대 사이에 표시기에 의해 일정 수준의 교차가 발생한 경우에만 주문을 열고자 하는 EA를 구현하고 있습니다.

예를 들어 일간 차트에서 1월 18일과 1월 19일 사이에 교차점이 있으면 1월 20일에 주문을 열고 싶습니다.

다음과 같이 했습니다.

주문을 열면 주문 오픈 시간 을 기록합니다.

그런 다음 다음 테스트를 수행합니다. Is (CurrentTime() - LastOrderOpenTime) < Period() ??

그렇다면 현재 막대가 아직 끝나지 않았으며 새 주문을 열지 않아야 함을 의미합니다. 그리고 또한 이 조건이 거짓이 되면 차트의 다음 막대에 있어야 하고 마지막 막대 이전에 십자가가 발생하고 다음 신호까지 주문이 열리지 않아야 합니다.

문제는 차트에 붙이면 막대가 완성될 때까지 계속해서 새로운 주문을 생성한다는 점이다. 아무도 내가 무엇을 잘못했는지 말해 줄 수 있습니까?

 
dvarrin:
안녕,

두 번째 이전 막대와 이전 막대 사이에 표시기에 의해 일정 수준의 교차가 발생한 경우에만 주문을 열고자 하는 EA를 구현하고 있습니다.

예를 들어 일간 차트에서 1월 18일과 1월 19일 사이에 교차점이 있으면 1월 20일에 주문을 열고 싶습니다.

다음과 같이 했습니다.

주문을 열면 주문 오픈 시간을 기록합니다.

그런 다음 다음 테스트를 수행합니다. Is (CurrentTime() - LastOrderOpenTime) < Period() ??

그렇다면 현재 막대가 아직 끝나지 않았으며 새 주문을 열지 않아야 함을 의미합니다. 그리고 또한 이 조건이 거짓이 되면 차트의 다음 막대에 있어야 하고 마지막 막대 이전에 십자가가 발생하고 다음 신호까지 주문이 열리지 않아야 합니다.

문제는 차트에 붙이면 막대가 완성될 때까지 계속해서 새로운 주문을 생성한다는 점이다. 아무도 내가 무엇을 잘못했는지 말해 줄 수 있습니까?

확실하지 않지만 여기 누군가가 얼마 전에 저를 위해 작성해 준 것이 있습니다. 나는 원래 작가에게 적절한 소품을 제공하기 위해 그것을 구글해야 할 것입니다.

그것은 당신이 새로운 바를 여는 것을 결정하는 데 도움이 됩니다.

int newbar()

{

double g;

int m,s,k;

m=Time[0]+Period()*60-TimeCurrent();

g=m/60.0;

s=m%60;

m=(m-m%60)/60;

return(m);

}[/CODE]

And I use it like this:

[CODE]if (newbar()==Period())

도움이 되기를 바랍니다.

 
dvarrin:
안녕,

두 번째 이전 막대와 이전 막대 사이에 표시기에 의해 일정 수준의 교차가 발생한 경우에만 주문을 열고자 하는 EA를 구현하고 있습니다.

예를 들어 일간 차트에서 1월 18일과 1월 19일 사이에 교차점이 있으면 1월 20일에 주문을 열고 싶습니다.

다음과 같이 했습니다.

주문을 열면 주문 오픈 시간을 기록합니다.

그런 다음 다음 테스트를 수행합니다. Is (CurrentTime() - LastOrderOpenTime) < Period() ??

그렇다면 현재 막대가 아직 끝나지 않았으며 새 주문을 열지 않아야 함을 의미합니다. 그리고 또한 이 조건이 거짓이 되면 차트의 다음 막대에 있어야 하고 마지막 막대 이전에 십자가가 발생하고 다음 신호까지 주문이 열리지 않아야 합니다.

문제는 차트에 붙이면 막대가 완성될 때까지 계속해서 새로운 주문을 생성한다는 점이다. 아무도 내가 무엇을 잘못했는지 말해 줄 수 있습니까?

그런 다음 다음 테스트를 수행합니다. Is (CurrentTime() - LastOrderOpenTime) < Period() ??

추가할 수 있습니다 // return (0);

또는

이것은 도움이 될 수 있습니다 .. 코드를 추가하십시오 ..

for(int i=0;i<OrdersTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) 중단;

if(OrderSymbol()== 기호() && OrderMagicNumber()== MN)

{

if( OrderOpenTime() >= iTime(0, PERIOD_D1, 0) samebar++;

}

}

당신은 2에서 선택할 수 있습니다..

if ( samebar > 0 ) return (0);

또는

if (samebar < 1) {주문 코드;}

제가 코딩을 잘 못해서 누가 제가 코드를 제대로 놓았는지 확인해 보시겠어요..

 
dvarrin:
안녕,

두 번째 이전 막대와 이전 막대 사이에 표시기에 의해 일정 수준의 교차가 발생한 경우에만 주문을 열고자 하는 EA를 구현하고 있습니다.

예를 들어 일간 차트에서 1월 18일과 1월 19일 사이에 교차점이 있으면 1월 20일에 주문을 열고 싶습니다.

다음과 같이 했습니다.

주문을 열면 주문 오픈 시간을 기록합니다.

그런 다음 다음 테스트를 수행합니다. Is (CurrentTime() - LastOrderOpenTime) < Period() ??

그렇다면 현재 막대가 아직 끝나지 않았으며 새 주문을 열지 않아야 함을 의미합니다. 그리고 또한 이 조건이 거짓이 되면 차트의 다음 막대에 있어야 하고 마지막 막대 이전에 십자가가 발생하고 다음 신호까지 주문이 열리지 않아야 합니다.

문제는 차트에 붙이면 막대가 완성될 때까지 계속해서 새로운 주문을 생성한다는 점이다. 아무도 내가 무엇을 잘못했는지 말해 줄 수 있습니까?

음...

if(iOpen(Symbol(),0,0)==iClose(Symbol(),0,0)&&iLow(Symbol(),0,0)==iHigh(Symbol(),0,0))

{

//A new bar has happend.

}
 

이전 거래의 이익을 어떻게 알 수 있습니까? 그리고 부지와 측면?

 
Dan7974:
이전 거래의 이익을 어떻게 알 수 있습니까? 그리고 부지와 측면?

OrdersTotal() 대신 OrdersHistoryTotal()을 사용하십시오. 그런 다음 OrderProfit(), OrderLots() 등을 사용하십시오. 관심 있는 기간의 과거 호가가 로드되었는지 확인해야 하며 수동으로만 수행할 수 있다고 생각합니다. '주문 내역' 탭을 마우스 오른쪽 버튼으로 클릭하고 '모든 기록'을 선택합니다.

OrderSelect()와 함께 'MODE_HISTORY'를 사용해야 한다고 추가했어야 합니다...

 
omelette:
OrdersTotal() 대신 OrdersHistoryTotal()을 사용하십시오. 그런 다음 OrderProfit(), OrderLots() 등을 사용하십시오. 관심 있는 기간의 과거 호가가 로드되었는지 확인해야 하며 수동으로만 수행할 수 있다고 생각합니다. '주문 내역' 탭을 마우스 오른쪽 버튼으로 클릭하고 '모든 기록'을 선택합니다. OrderSelect()와 함께 'MODE_HISTORY'를 사용해야 한다고 추가했어야 합니다...

안녕하세요 오믈렛입니다.

BT가 역사를 보는 데 문제가 있다는 것을 알고 있습니까? BT가 아닌 실제 역사를 보는 것입니다. 이 버그에 대해 몇 달 전에 Metaquote에 문의했지만 답변이 없었습니다. 아마도 이제 수정되었을 것입니다.

 

안녕

한 통화에 대한 금리 긴축 주기와 다른 통화에 대한 금리 인하 주기를 어떻게 코딩합니까?

EA는 스왑 현재 및 스왑 과거 환율을 볼 수 있습니까?

오일FXPRO

 
파일:
사유: