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

 
antone:
누구든지 저를 도와 주시겠습니까? 예를 들어 오전 5시~오전 10시 사이에 하나의 주문만 거래할 수 있지만 다른 시간에 다시 거래할 수 있습니다.

매우 간단합니다. 이력에서 마지막 주문의 주문 오픈 시간 을 확인한 다음 TimeDay 기능으로 요일을 확인해야 합니다. 오늘이라면 거래하지 마십시오.

 
Kalenzo:
매우 간단합니다. 이력에서 마지막 주문의 주문 오픈 시간을 확인한 다음 TimeDay 기능으로 요일을 확인해야 합니다. 오늘이라면 거래하지 마십시오.

그것들을 사용하는 방법에 대한 간단한 스크립트를 줄 수 있습니까? 나는 프로그래머가 아닙니다, 죄송합니다

감사합니다!

 

후행 정지 1개/여러 주문

모든 주문이 동일한 수준에서 마감되도록 현재 손절매와 동일하도록 모든 미결 주문 손절매를 수정하는 EA를 만들려고 합니다.

extern int profit = 100;

extern int stop = 20;

int start()

{

int i, HstTotal=OrdersHistoryTotal();

for(i = HstTotal-1; i >= 0; i --)

{

if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;

OrderModify(i,OrderOpenPrice(),Bid-Point*stop,profit,0,Green);

}

}

 

대신 OrdersTotal() 및 MODE_TRADES를 사용하십시오.

 
 
Kalenzo:
매우 간단합니다. 이력에서 마지막 주문의 주문 오픈 시간을 확인한 다음 TimeDay 기능으로 요일을 확인해야 합니다. 오늘이라면 거래하지 마십시오.

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

{

주문 선택(k,SELECT_BY_POS,MODE_TRADES;

if(OrderSymbol()== "GBPUSD" && OrderMagicNumber()== Magic_Number)

{

if(OrderOpenTime() != TimeCurrent()) {Trade = true;}

if(OrderOpenTime() == TimeCurrent()) {Trade = false;}

}

}

내가 뭘 잘못했어?도와주세요

 

아래 빨간색으로 수정.

로버트

antone:

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

{

주문 선택(k,SELECT_BY_POS,MODE_TRADES )

if(OrderSymbol()== Symbol() && OrderMagicNumber()== Magic_Number)

{

if( TimeDay( OrderOpenTime() ) != Day() ) {Trade = true;}

if( TimeDay( OrderOpenTime() ) == Day() ) {거래 = 거짓;}

}

}

새로운 거래를 방지하기 위해 동일한 유형의 코드를 사용하여 오픈 시간이 2시간 또는 11:45와 같이 분에서 분 사이인지 확인할 수 있습니다.

int openHour = TimeHour(OrderOpenTime());

if (openHour > 10 && openHour < 13) 거래 = false;

if (openHour = 13) 거래 = true;

내가 뭘 잘못했어?도와주세요
 

ATTN 프로그래머 - 새로운 6자리 가격 문제

모든 프로그래머에게.

일부 중개인이 가격에 소수점 이하 자릿수를 추가로 사용하는 데 문제가 있음을 알게 되었습니다. 이로 인해 StopLoss, TakeProfit 또는 Breakout Levels 와 같은 계산에 Point가 사용되는 모든 곳에서 문제가 발생합니다.

간단한 해결책이 있습니다.

이제 다음 함수를 사용하고 Point에 대한 모든 참조를 myPoint로 바꿉니다.

EA 상단에 변수를 선언합니다.

더블 마이포인트;

그런 다음 초기화에서 함수를 사용하여 값을 설정합니다.

초기화()

{

myPoint = SetPoint();

}

그런 다음 기능.

// Point 값을 소수점 이하 2자리 또는 4자리로 설정

// 소수점 이하 3자리와 5자리를 사용하는 브로커를 처리하기 위해

이중 SetPoint()

{

더블 mPoint;

if (숫자 < 4)

m포인트 = 0.01;

또 다른

m포인트 = 0.0001;

리턴(m포인트);

}

Point를 사용하여 선을 그릴 위치나 히스토그램의 크기를 결정하는 일부 표시기에도 문제가 있습니다.

프로그래머가 이 정보를 필요로 하는 포럼이나 그룹에 이 정보를 전달하십시오.

이미 Yahoo 그룹 MTE & I에 게시했습니다.

도움이 되었기를 바랍니다.

로버트

 

기드데이

특정 수의 바/일 에서 포지션을 종료하는 방법을 알 수 없는 것 같아 도움을 찾고 있습니다. 예를 들어 나는 월요일에 롱으로 가고 시스템은 5바/일 후 종가에서 종료됩니다.

어떤 도움이라도 좋을 것입니다

건배

베노

 

베노,

위의 게시물과 유사한 코드를 거래하지 않는 데 사용할 수 있습니다. 현재 날짜가 개장일로부터 마감일 이후의 일 수인지 확인하십시오. 코드는 시간 또는 분도 사용하도록 수정할 수 있습니다.

또 다른 방법은 거래가 열릴 때 exit_time으로 거래를 닫는 시간을 계산하는 것입니다. 그런 다음 종료하려면 확인 종료 코드에서 exit_time을 확인하십시오.

마감 시간을 얻으려면 올바른 수식을 사용하여 오픈 시간 에 올바른 값을 추가해야 합니다. 이것은 막대당 분 수 * 나중에 OrderOpenTime()에 추가된 닫기 막대 수를 사용합니다.

도움이 되었기를 바랍니다.

로버트

Beno:
기드데이

특정 수의 바/일에서 포지션을 종료하는 방법을 알아낼 수 없는 것 같아 도움을 찾고 있습니다. 예를 들어 나는 월요일에 롱으로 가고 시스템은 5바/일 후 종가에서 종료됩니다.

어떤 도움이라도 좋을 것입니다

건배

베노