Bu EA ile bana yardımcı olabilecek var mı?

 
//+------------------------------------------------------------------+
//| |
//| 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);
}
//+------------------------------------------------------------------+
 

canlıya koymaya çalıştım ama takas olmuyor..

biri benim için düzeltebilir mi?

strateji test cihazı kullanarak denedim ve işe yarıyor

Şimdiden teşekkürler :)

 

EA BUILDER'DAN NEFRET EDERİZ

 
dabbler :

EA BUILDER'DAN NEFRET EDERİZ



???
 

EA oluşturucu, EA oluşturucuyu kullanan kişinin anlayamadığı ve bu nedenle düzeltemeyeceği hatalı kod oluşturur. Ve çok fazla kod var ve çok sayıda kötü koddan öğrenmek zor.

"EA oluşturucu" içeren son ileti dizileri için forumda arama yapmayı deneyin

 
17021978 :

canlıya koymaya çalıştım ama takas olmuyor..

biri benim için düzeltebilir mi?

strateji test cihazı kullanarak denedim ve işe yarıyor

Şimdiden teşekkürler :)


Ticaret yapmıyorsa, terminal günlüğüne/uzmanlarına bakmalı ve bunun içindeki satırları okumalısınız.

O zaman hala bir fikriniz varsa, EA'nız grafiğe bağlıyken neler olduğunu görmek için EA'nıza bazı Yorum veya Yazdır satırları koymanız gerekir.

ve bu yardımcı olmazsa, EA'nın ticaret yapmasına izin vermemiş olabilirsiniz....

peki düzeltilmesi gereken ne var

Bu arada, mesajınıza programlama satırlarını yerleştirmek için SRC düğmesini kullanmanız gerekir.

ve dabbler gibi

EA Builder'dan nefret ettiğimi söyleyin, sahip olmanız gereken programlamanın temellerini öğrenmiyorsunuz... Biraz zaman ayırın ve temel bilgileri inceleyin

 
tamam teşekkürler dabbler ve deVries!
 

  1. Burada köle olmadığı için sadece iki seçenek var: Kodlamayı öğrenmek veya birine ödeme yapmak. Bunu sizin için kodlamayacağız. Size YARDIM etmeye hazırız. 230 satırlık kodun hatalarını ayıklamayacağız.
  2. EA oluşturucu, birden fazla siparişi kapatırken hatalı kod sayımı yapar.
  3. EA oluşturucu hatalı kod yapar Çubuklar güvenilmezdir (tablodaki maksimum çubuklar) hacim güvenilmezdir (eksik işaretler) Her zaman zamanı kullanın
  4. EA oluşturucu hatalı kod yapıyor 4/5 basamaklı brokerler için ayar yapmıyor
  5. EA oluşturucu, ECN komisyoncuları için ayarlanmayan hatalı kod yapar.
  6. "Canlandırmaya çalıştım ama takas olmuyor.." Günlük dosyası ne diyor?
 
WHRoeder :

  1. Burada köle olmadığı için sadece iki seçenek var: kodlamayı öğrenmek veya birine ödeme yapmak. Bunu sizin için kodlamayacağız. Size YARDIM etmeye hazırız. 230 satırlık kodun hatalarını ayıklamayacağız.
  2. EA oluşturucu, birden fazla siparişi kapatırken hatalı kod sayımı yapar.
  3. EA oluşturucu hatalı kod yapar Çubuklar güvenilmezdir (tablodaki maksimum çubuklar) hacim güvenilmezdir (eksik işaretler) Her zaman zamanı kullanın
  4. EA oluşturucu hatalı kod yapıyor 4/5 basamaklı brokerler için ayar yapmıyor
  5. EA oluşturucu, ECN komisyoncuları için ayarlanmayan hatalı kod yapar.
  6. "Canlandırmaya çalıştım ama takas olmuyor.." Günlük dosyası ne diyor?


günlük dosyası hiçbir şey göstermiyor.. günlükte hiçbir şey yok.

genellikle günlükten hata görebiliriz ama bu hiçbiri değil ..

WHRoeder'ı yanıtladığınız için teşekkürler

 
WHRoeder :

  1. EA oluşturucu hatalı kod yapar Çubuklar güvenilmezdir (tablodaki maksimum çubuklar) hacim güvenilmezdir (eksik işaretler) Her zaman zamanı kullanın

Dolayısıyla grafik, seçenekte belirtilen grafik boyutundan daha büyük olamaz -- düşünebilirsiniz. Bu yüzden Bars'ı kullanmanın ne kadar yararsız olduğunu kanıtlamak için küçük bir EA yazdım.

 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 );
}

Test cihazında beklendiği gibi güzel çalışıyor. Bir demo veya canlı hesapta sefil bir şekilde başarısız olacağını varsaydım . Grafik boyutum 100.000 olarak ayarlandı ve grafikte bundan daha fazla çubuk vardı. Bu yüzden grafikteki maksimum çubukları 10.000 olarak değiştirdim ve programı yeniden başlattım. EA'yı çalıştıran ilk onay işareti bana neredeyse doğru bir cevap verdi, 10,005. Ancak bir M1 grafiğinde, grafik limiti tamamen göz ardı ediliyorsa beklediğiniz gibi sürekli güncelleniyor. Grafik limitinin yalnızca programı başlattığınızda geçerli olması mümkündür.

Sonunda Bars'ın gerçekten ne yapmasının beklendiğini bilmediğimi kanıtladım :-(

 
17021978 :

canlıya koymaya çalıştım ama takas olmuyor..

biri benim için düzeltebilir mi?

strateji test cihazı kullanarak denedim ve işe yarıyor

Şimdiden teşekkürler :)

Sevgili 17021978 - bu eski,

EA oluşturucu ile ilgili tüm ileti dizisini okuyun https://www.mql5.com/en/forum/139608

:(