파이어버드 EA - 페이지 58

 
 

안녕하세요 rbchapin님

당신이 옳은 것 같다. 그러나 "미친 날"은 금요일만 있는 것이 아닙니다. 다른 날일 수도 있습니다.

설정 파일의 설정 내부를 살펴보니 다음 설정이 기록되어 있습니다.

extern int MAtype=0 ;//0=close, 1=HL

extern int TradeOnFriday =0 ; // >0 trades on friday[/CODE]

But inside the code I found the following:

if( MAtype==0 )

{

double myMA =iMA(NULL,MA_timeframe,MA_length,0,MODE_SMA, PRICE_OPEN,0 );[/CODE]

So, according to my limited programming knowledge, if MAtype=0 so EA is using MA indicator on open price for current open bar.

And some other codes:

[CODE]KeepStopLoss=OrderStopLoss();

And more:

[CODE]if(KeepStopLoss!=0)

{

spread=MathAbs(KeepAverage-KeepStopLoss)/2;

dummy=(Bid+Ask)/2;

if (KeepStopLoss(dummy-spread))

{

// a stoploss was hit

if(Direction==1) Direction=11;// no more longs

if(Direction==2) Direction=22;// no more shorts

}

KeepStopLoss=0;

}

방향==1은 길다. Direction==11은 더 이상 길지 않습니다.

방향==2는 짧습니다. Direction==22는 더 이상 짧지 않습니다.

 

그리고 이 코드를 보세요.

if((myMA*(1+Percent/100))<Bid && Direction!=22 && (Bid>=(LastPrice+(CurrentPipStep*Point)) || myTotal==0 ) )[/CODE]

So, it is not surprise when EA is openning too many orders sometimes. It is open price and when market is moving very quickly so we may have condition for open the order 100 times on open bar.

May be it should be && instead of or (||) here?

[CODE]....|| myTotal==0 ) )
 

따라서 최소한 EA가 비행할 날을 알고 있다는 것은 매우 좋은 일입니다. 매월 5일이 될 수 있습니다.

 

그러나 당신이 옳을 수도 있습니다.

이 코드를 "번역"할 수 있기 때문에

if (Day()!=5 || TradeOnFriday >0)[/CODE]

as the following:

"if it is not 5th of the month, or if we are trading on Friday."

And int Day( ) is the following:

Returns the current day of the month, i.e., the day of month of the last known server time.

So, EA will trade is it is not 5th of the month (5th of October for example) or TradeOnFriday>0 (we are having TradeOnFriday=0).

I think it should be DayOfWeek( ) instead of Day( ):

[CODE]int DayOfWeek( )

Returns the current zero-based day of the week (0-Sunday,1,2,3,4,5,6) of the last known server time.
 

헤징

안녕하세요 여러분,

Firebird v3.2에 대해 질문이 있습니다.

나는 그것이 어떻게 작동하는지 지켜보았고 그것이 잘못된 방향으로 갈 경우 취한 입장에 대해 헤지하는 것을 보았습니다. 그러나 헤지가 이익으로 마감되면 다른 거래는 테이블에 남습니다.

포지션 중 하나가 마감되면 모든 포지션을 닫아야 하지 않습니까?

가격이 매우 오랫동안 열린 위치로 돌아오지 않으면 어떻게 됩니까?

rbc

 
newdigital:
그러나 당신이 옳을 수도 있습니다.

이 코드를 "번역"할 수 있기 때문에

if (Day()!=5 || TradeOnFriday >0)[/CODE]

as the following:

"if it is not 5th of the month, or if we are trading on Friday."

And int Day( ) is the following:

Returns the current day of the month, i.e., the day of month of the last known server time.

So, EA will trade is it is not 5th of the month (5th of October for example) or TradeOnFriday>0 (we are having TradeOnFriday=0).

I think it should be DayOfWeek( ) instead of Day( ):

[CODE]int DayOfWeek( )

Returns the current zero-based day of the week (0-Sunday,1,2,3,4,5,6) of the last known server time.

안녕하세요 뉴디지털입니다.

실제로 EA가 계속 거래하기 때문에 조금 더 나쁩니다. 그러나 동결된 LastPrice와 Myorders가 둘 다 나중에 위험을 관리하는 데 사용됩니다. 동결되면 다음과 같은 결과가 발생합니다. 1. 주문 수에 제한이 없으며 2. 가격이 행사가 범위로 이동하는 경우 Lastprice가 마지막 주문을 따르지 않기 때문에 가격이 계속 행사 범위에서 행사됩니다.

확인했는데 Lastprice가 거래될 때 업데이트되지 않으므로 업데이트하려면 if 문 아래에 루프를 입력해야 합니다.

If(Day()) 문을 제거하고 전체 Friday 블록 논리를 시간 필터 논리가 배치된 위치에 배치해야 한다고 생각합니다. (그것이 있는지 확실하지 않지만 V3.2에는 있습니다). 수익성이 없는 것 같으면 자금 관리가 항상 작동하기 때문에 위험을 높일 수 있습니다.

rbc

 

안녕하세요 rbchapin님

정말 감사합니다.

작년에 이미 이 EA 테스트를 중단하고 싶었지만 많은 PM 메시지를 받고 많은 사람들이 그 "미친 날"을 좋아하는 것 같습니다. 실계좌가 1분만에 100개 주문을 여는 것은 불가능한 경우라는 걸 멤버들이 이해하지 못하는 것 같아요...

이 EA를 계속 테스트하고 "버그 발견 메시지"로 파일 스레드 https://www.mql5.com/en/forum/176044/page2 를 업데이트할 것입니다.

 

Firebird는 어제 다시 한번 날고 있었습니다.

파일:
firebird065.zip  546 kb
 
사유: