누구든지 이 EA를 도와줄 수 있습니까?

 
//+------------------------------------------------------------------+
//| |
//| In no event will author be liable for any damages whatsoever. |
//| Use at your own risk. |
//| |
//+------------------- DO NOT REMOVE THIS HEADER --------------------+

#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4

#property link "http://eatbuilder.com/"

extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = True;
extern double Lots = 0.1;
extern int Slippage = 3;
extern bool UseStopLoss = True;
extern int StopLoss = 15;
extern bool UseTakeProfit = True;
extern int TakeProfit = 10;
extern bool UseTrailingStop = False;
extern int TrailingStop = 30;
extern string Comments = "HLC_v2";

int BarCount;
int Current;
bool TickCheck = False;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init() {
BarCount = Bars;

if (EachTickMode) Current = 0; else Current = 1;

return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start() {
int Order = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;



if (EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
Order = SIGNAL_NONE;

//+------------------------------------------------------------------+
//| Variable Begin |
//+------------------------------------------------------------------+

double Var1 = iHigh(NULL, PERIOD_H1, Current + 1);
double Var2 = iLow(NULL, PERIOD_H1, Current + 1);
double Var3 = iClose(NULL, PERIOD_M15, Current + 0);
double Var4 = iOpen(NULL, PERIOD_M15, Current + 0);
double Var5 = iClose(NULL, PERIOD_M15, Current + 0);

double Buy1_1 = iHigh(NULL, PERIOD_H1, Current + 1); //(Buy1_1 < Buy1_2 && Buy2_1 < Buy2_2) Order = SIGNAL_BUY;
double Buy1_2 = iClose(NULL, PERIOD_M15, Current + 0);
double Buy2_1 = iOpen(NULL, PERIOD_M15, Current + 0);
double Buy2_2 = iClose(NULL, PERIOD_M15, Current + 0);

double Sell1_1 = iLow(NULL, PERIOD_H1, Current + 1);
double Sell1_2 = iClose(NULL, PERIOD_M15, Current + 0);
double Sell2_1 = iOpen(NULL, PERIOD_M15, Current + 0);
double Sell2_2 = iClose(NULL, PERIOD_M15, Current + 0);




//+------------------------------------------------------------------+
//| Variable End |
//+------------------------------------------------------------------+

//Check position
bool IsTrade = False;

for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
IsTrade = True;
if(OrderType() == OP_BUY) {
//Close

//+------------------------------------------------------------------+
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+



//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
} else {
//Close

//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell) |
//+------------------------------------------------------------------+



//+------------------------------------------------------------------+
//| Signal End(Exit Sell) |
//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}

//+------------------------------------------------------------------+
//| Signal Begin(Entry) |
//+------------------------------------------------------------------+

if (Buy1_1 < Buy1_2 && Buy2_1 < Buy2_2) Order = SIGNAL_BUY;

if (Sell1_1 > Sell1_2 && Sell2_1 > Sell2_2) Order = SIGNAL_SELL;


//+------------------------------------------------------------------+
//| Signal End |
//+------------------------------------------------------------------+

//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (100 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}

if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}

//Sell
if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (100 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}

if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("SELL order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
} else {
Print("Error opening SELL order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}

if (!EachTickMode) BarCount = Bars;

return(0);
}
//+------------------------------------------------------------------+
 

라이브로 하려고 했는데 거래가 안되네요..

누군가 나를 위해 고칠 수 있습니까?

전략 테스터 를 사용하여 시도하고 작동합니다

미리 감사드립니다 :)

 

우리는 EA BUILDER를 싫어합니다

 
dabbler :

우리는 EA BUILDER를 싫어합니다



???
 

EA 빌더는 EA 빌더를 사용하는 사람이 이해할 수 없고 고칠 수 없는 나쁜 코드를 생성합니다. 그리고 많은 코드가 있고 많은 나쁜 코드에서 배우기가 어렵습니다.

포럼에서 "EA builder"가 포함된 최근 스레드를 검색해 보세요.

 
17021978 :

라이브로 하려고 했는데 거래가 안되네요..

누군가 나를 위해 고칠 수 있습니까?

전략 테스터를 사용하여 시도하고 작동합니다

미리 감사드립니다 :)


거래되지 않으면 터미널 저널/전문가를 살펴보고 이 안에 있는 줄을 읽어야 합니다.

그래도 아이디어가 없으면 EA가 차트에 첨부되는 동안 무슨 일이 일어나는지 보기 위해 주석 또는 인쇄 라인을 EA에 넣어야 합니다.

도움이 되지 않는다면 EA가 거래하는 것을 허용하지 않았을 수 있습니다....

그래서 고쳐야 할 게 뭐가 있어.

그런데 SRC 버튼을 사용하여 메시지에 프로그래밍 라인을 배치해야 합니다.

그리고 더블러 처럼

내가 EA Builder를 싫어한다고 말하세요 당신은 당신이 가져야 할 프로그래밍의 기초를 배우지 않습니다 .... 시간을내어 기초를 공부하십시오

 
ok 감사합니다 dabbler와 deVries!
 

  1. 여기에 노예가 없기 때문에 두 가지 선택만 가능합니다. 코딩을 배우 거나 누군가에게 돈을 지불 하는 것입니다. 우리는 당신을 위해 그것을 코딩하지 않을 것입니다. 기꺼이 도와드리겠습니다. 우리는 230줄의 코드를 디버그하지 않을 것입니다.
  2. EA 빌더는 여러 주문을 마감하는 동안 잘못된 코드를 계산합니다.
  3. EA 빌더가 잘못된 코드를 만듭니다 막대가 신뢰할 수 없음(차트의 최대 막대) 볼륨이 신뢰할 수 없음(눈금 누락) 항상 시간 사용
  4. EA 빌더가 잘못된 코드를 만듭니다. 4/5자리 브로커를 위해 조정하지 않음
  5. EA 빌더는 ECN 브로커에 대해 조정되지 않는 잘못된 코드를 만듭니다.
  6. "실시간으로 하려고 했지만 거래가 되지 않습니다.." 로그 파일은 무엇을 말합니까?
 
WHRoeder :

  1. 여기에 노예가 없기 때문에 두 가지 선택만 가능합니다. 코딩을 배우 거나 누군가에게 돈을 지불 하는 것입니다. 우리는 당신을 위해 그것을 코딩하지 않을 것입니다. 기꺼이 도와드리겠습니다. 우리는 230줄의 코드를 디버그하지 않을 것입니다.
  2. EA 빌더는 여러 주문을 마감하는 동안 잘못된 코드를 계산합니다.
  3. EA 빌더가 잘못된 코드를 만듭니다 막대가 신뢰할 수 없음(차트의 최대 막대) 볼륨이 신뢰할 수 없음(눈금 누락) 항상 시간 사용
  4. EA 빌더가 잘못된 코드를 만듭니다. 4/5자리 브로커를 위해 조정하지 않음
  5. EA 빌더는 ECN 브로커에 대해 조정되지 않는 잘못된 코드를 만듭니다.
  6. "실시간으로 하려고 했지만 거래가 되지 않습니다.." 로그 파일은 무엇을 말합니까?


로그 파일에 아무것도 표시되지 않습니다. 저널에 아무것도 표시되지 않습니다.

일반적으로 저널에서 오류를 볼 수 있지만 이것은 아무 것도 아닙니다.

WHRoeder에 응답해 주셔서 감사합니다.

 
WHRoeder :

  1. EA 빌더가 잘못된 코드를 만듭니다 막대가 신뢰할 수 없음(차트의 최대 막대) 볼륨이 신뢰할 수 없음(눈금 누락) 항상 시간 사용

따라서 차트는 옵션이 지정한 차트 크기보다 더 커질 수 없습니다. 그래서 Bars 를 사용하는 것이 얼마나 쓸모없는지 증명 하기 위해 약간의 EA를 작성했습니다.

 int barCount=- 1 ;

int init(){
   barCount = Bars ;
   Print ( "Starting number of bars is " + barCount );
}

int start(){
   if ( barCount != Bars ){
       barCount  = Bars ;
       Print ( "Bar count is now " + barCount);
   }

   return ( 0 );
}

테스터에서 예상대로 잘 작동합니다. 데모나 라이브 계정에서는 비참하게 실패할 것이라고 생각 했습니다. 내 차트 크기는 100,000으로 설정되어 있으며 차트에는 그보다 더 많은 막대가 있습니다. 그래서 차트의 최대 막대를 10,000으로 변경하고 프로그램을 다시 시작했습니다. 확실히 EA를 실행하는 첫 번째 틱은 거의 정답인 10,005를 주었습니다. 그러나 M1 차트에서는 차트 제한이 완전히 무시된 경우 예상대로 꾸준히 업데이트되고 있습니다. 차트 제한은 프로그램을 시작할 때만 적용될 수 있습니다.

나는 Bars 가 실제로 무엇을 할 것으로 예상되는지 모른다는 것을 증명하게 되었습니다 :-(

 
17021978 :

라이브로 하려고 했는데 거래가 안되네요..

누군가 나를 위해 고칠 수 있습니까?

전략 테스터를 사용하여 시도하고 작동합니다

미리 감사드립니다 :)

친애하는 17021978 - 그것은 오래되었습니다.

EA 빌더에 대한 전체 스레드 읽기 https://www.mql5.com/en/forum/139608

:(