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

 

Kalenzo님, 감사합니다.

OP_BUYLIMIT로 시도했지만 작동하지 않습니다.

OP_BUYSTOP으로 시도하겠습니다.

 

빠른 코딩 질문

(모든 종가의) 평균값으로 화면에 수평선 을 어떻게 표시합니까? 그것에 대한 특정 코드가 있습니까?

 

심플 브레이크아웃 EA

//+------------------------------------------------------------------+

//| SimpleBreakoutEA.mq4 |

//| |

//| |

//+------------------------------------------------------------------+

#property copyright "jjk2"

#property link ""

//---- input parameters

extern int ____TIME_RANGE____;

extern int TimeRange = 1; // # of Hours to look back from TimeEnd. ex) if breakout is @ 22:00 GMT to 23:00 GMT. Total TimeRange to lookback is 8 hrs.

extern int TimeBegin = 22;

extern int TimeEnd = 23;

extern int CancelTime = 20; // ALL REMAINING ORDERS WILL BE CANCELED AT THIS INDICATED TIME.

extern int ______FILTERS______;

extern int TriggerFilter = 0;

extern bool AllowBreakEven = True;

extern int ______ORDERS______;

extern double Lots = 0.1;

extern int StopLoss = 50;

extern int TakeProfit = 100;

extern int Slippage = 2;

extern int MagicNumber = 23423;

int init()

{

return(0);

}

int deinit()

{

return(0);

}

int start()

{

// OPEN ORDERS @ HIGH/LOW from TIMEBEGIN to TimeEND

if (Hour() >= TimeBegin-1 && Hour() >= TimeEnd)

{

int HH = iHighest(NULL, 0, MODE_HIGH,TimeRange,0);

int LL = iLowest(NULL, 0, MODE_LOW,TimeRange,0);

}

double SL_High = Ask - (StopLoss * Point);

double SL_Low = Bid + (StopLoss*Point);

double TP_High = Ask + (TakeProfit*Point);

double TP_Low = Bid - (TakeProfit*Point);

if ( Ask > HH + TriggerFilter) OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, SL_High, TP_High, "Breakout Buy", MagicNumber, NULL, Blue);

if ( Bid < LL + TriggerFilter) OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, SL_Low, TP_Low, "Breakout Sell", MagicNumber, NULL, Red);

// MOVE SL @ BreakEven if allowed. MarketPrice distance Open Price > stop*point, then stop must equal to MarketPrice - Stop*point as new stoploss.

int total = 0;

if ( AllowBreakEven == True )

{

for(total = OrdersTotal() - 1; total >= 0; total--)

{

OrderSelect(total, SELECT_BY_POS);

if ( Bid - OrderOpenPrice() > SL_High*Point )

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - SL_High*Point, OrderTakeProfit(),0, CLR_NONE);

if ( OrderOpenPrice() - Ask > SL_Low*Point )

OrderModify(OrderTicket(), OrderOpenPrice(), Ask + SL_Low*Point , OrderTakeProfit(),0, CLR_NONE);

}

}

return(0);

}

//+------------------------------------------------------------------+

어떤 이유로 작동하지 않습니다 .... 이유를 아는 사람이 있습니까?

 
 

표시기를 EA로 돌리는 방법?

안녕하세요, 지표를 EA로 전환하는 방법을 알 수 있습니까?

많은 지표에는 특정 조건과 관련하여 화살표 기호가 있으며 EA로 테스트하고 싶습니다.

EA가 형성된 화살표에 따라 거래를 했으면 합니다.

누군가 나를 도울 수 있습니까? 감사해요.

 

이것은 화살표 기호에 따른 것입니다.

https://www.mql5.com/en/forum/173249/page51

 

부착된 인디케이터를 EA로 바꾸면 어떨까요?

누군가 도와줄 수 있습니까? 감사해요.

 
파일:
envelopes.mq4  3 kb
 

코드 구조

안녕,

저는 Metatrader를 처음 사용하지만 프로그래밍에 매우 경험이 있습니다. MT에서 샘플 Expert Advisors와 약간 복잡한 지표를 만들었습니다. 명확하지 않은 것은 다소 복잡한 EA를 구성하는 방법입니다. EA가 다른 설정 조건을 확인하기 위해 일부 "신호" 기능을 호출하기를 원합니다.

이러한 기능을 어떻게 코딩해야 합니까?

1. EA에서 "인라인" 기능으로

2. 화면에 쓰는 대신 값을 반환하는 "별도의" 표시기로?

3. iMA를 호출하는 것처럼 호출하는 다른 "별도의" 기능

대안 1을 선택하면 EA의 인라인 기능이 닫기를 사용하여 마지막 200개 막대를 통해 실행되고 iMA를 호출할 수 있습니까?

대안 2는 괜찮습니까? 표시기를 코딩할 때 "사용 가능한" 모든 막대가 처리되며 물론 EA에는 필요하지 않습니다.

나에게 대안 3은 논리적인 선택처럼 보이지만 백테스팅 에서 작동하도록 구성하는 방법과 여기에 전달해야 하는 항목 및 함수가 기본적으로 액세스할 수 있는 항목(예: 닫기)

"시그널" 기능에서 설정해야 하는 것의 예는 현재 추세가 무엇이며 언제 시작되었는지입니다. 실제 코드를 수행하는 방법을 알 수 있도록 표시기에 코딩했습니다.

모든 조언에 감사드립니다.

잉바르

 
ingvar_e:
안녕,

저는 Metatrader를 처음 사용하지만 프로그래밍에 매우 경험이 있습니다. MT에서 샘플 Expert Advisors와 약간 복잡한 지표를 만들었습니다. 명확하지 않은 것은 다소 복잡한 EA를 구성하는 방법입니다. EA가 다른 설정 조건을 확인하기 위해 일부 "신호" 기능을 호출하기를 원합니다.

이러한 기능을 어떻게 코딩해야 합니까?

1. EA에서 "인라인" 기능으로

2. 화면에 쓰는 대신 값을 반환하는 "별도의" 표시기로?

3. iMA를 호출하는 것처럼 호출하는 다른 "별도의" 기능

대안 1을 선택하면 EA의 인라인 기능이 닫기를 사용하여 마지막 200개 막대를 통해 실행되고 iMA를 호출할 수 있습니까?

대안 2는 괜찮습니까? 표시기를 코딩할 때 "사용 가능한" 모든 막대가 처리되며 물론 EA에는 필요하지 않습니다.

나에게 대안 3은 논리적인 선택처럼 보이지만 백테스팅에서 작동하도록 구성하는 방법과 여기에 전달해야 하는 항목 및 함수가 기본적으로 액세스할 수 있는 항목(예: 닫기)

"시그널" 기능에서 설정해야 하는 것의 예는 현재 추세가 무엇이며 언제 시작되었는지입니다. 실제 코드를 수행하는 방법을 알 수 있도록 표시기에 코딩했습니다.

모든 조언에 감사드립니다.

잉바르

당신은 아마도 이것을 하는 방법을 이미 알고 있을 것입니다. 그렇다면 죄송합니다.

현재 막대의 이동 평균 :

iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE, 0 );

200 bar 전의 이동 평균 .

iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE, 200 );

현재 형성하려는 막대에서 과거의 막대로 이동 평균을 호출할 수 있습니다.