ÇOK basit bir EA oluşturmak için yardıma ihtiyacınız var - sayfa 3

 

//+------------------------------------------------------------------+
//| Stepper.mq4 |
//| doshur |
//| www.doshur.com |
//+------------------------------------------------------------------+
#property copyright "doshur"
#property link "www.doshur.com"

extern int TakeProfit = 5;
extern int Range = 20;
extern int Risk = 2;

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
  {
  return(0);
  }

int deinit()
  {
  return(0);
  }

int start()
  {
//----
  static bool ToTrade = false;
  static bool FirstTrade = true;

  double PrevLow = iLow(Symbol(), 0, 1);
  double PrevHigh = iHigh(Symbol(), 0, 1);
  double PrevRange = (PrevHigh - PrevLow) / Point;

  if(NewBar())
  {
  if(FirstTrade == false)
  {
  if(PrevRange >= Range)
  ToTrade = true;
  else
  ToTrade = false;
  }
  else
  {
  FirstTrade = false;
  }
  }

  if(ToTrade)
  {
  if(COT(1) < 1)
  {
  if(Ask > PrevHigh)
  OrderSend(Symbol(), OP_BUY, MM(PrevRange, Risk), Ask, 3, PrevLow, Ask + TakeProfit * Point, "Stepper - BUY", 57390, 0, Blue);
  }

  if(COT(2) < 1)
  {
  if(Bid < PrevLow)
  OrderSend(Symbol(), OP_SELL, MM(PrevRange, Risk), Bid, 3, PrevHigh, Bid - TakeProfit * Point, "Stepper - SELL", 57391, 0, Red);
  }
  }
//----
  return(0);
  }
//+------------------------------------------------------------------+

//---- Check Is New Bar
bool NewBar()
{
  static datetime PrevBar;

  if(PrevBar < Time[0])
  {
  PrevBar = Time[0];
  return(true);
  }
  else
  {
  return(false);
  }

  return(false);
}

//---- Check Open Trades
int COT(int BS)
{
  int Buys = 0, Sells = 0;

  for(int cnt_COT = 0; cnt_COT < OrdersTotal(); cnt_COT++)
  {
  OrderSelect(cnt_COT, SELECT_BY_POS, MODE_TRADES);

  if(OrderType() == OP_BUY && OrderSymbol() == Symbol()) Buys++;
  if(OrderType() == OP_SELL && OrderSymbol() == Symbol()) Sells++;
  }

  if(BS == 1) return(Buys);
  if(BS == 2) return(Sells);
}

//---- Money Management
double MM(int SL, int RK)
{
  double rLots = NormalizeDouble(AccountBalance() / 1000 * RK / SL, 1); // Risk ?% of balance

  if(rLots < 0.1) rLots = 0.1;

  return(rLots);
}


Sorunun ve bazılarının üstesinden gelmek için ilk çalıştırmayı uygulamıştı

kodu test etmemiştim

Lütfen diğer değişiklikleri test edin ve listeleyin

 

is there away where we can modify the stop loss to so 15 or 20 instead of the other end of the candle?

 

crazfoto 2008.12.02 08:27 stop loss'u mumun diğer ucu yerine 15 veya 20 olarak değiştirebileceğimiz bir yer var mı?


EVET. Bu mümkün.

 

Bu 2 saatlik ortalama için mi? veya 30min'in başka bir versiyonu mu?


2 saatlik ortalama ise, dün herhangi bir işlem gerçekleştirmedi.

 
crazfoto :

Bu 2 saatlik ortalama için mi? veya 30min'in başka bir versiyonu mu?


2 saatlik ortalama ise, dün herhangi bir işlem gerçekleştirmedi.

kodlarımı mı kastediyorsun?

İstediğiniz gibi 30 dakika uygulanır.

 

ah. benim hatam. şimdi test edeceğim.


Bu konuda bana yardımcı olduğunuz için ÇOK TEŞEKKÜR EDERİM. 4 saatlik grafikte zekice oynadım. 4 saatlik bir grafikte durağı 15 veya 20 pip olarak değiştirirsem sonuçların iyi olacağını düşünüyorum. ve ne alıştım.

 
çevrimdışı 2 saatlik bir çizelgede çalışacak mı? Bir çok insanın çevrimdışı grafiklerde EA'ları kullanırken sorun yaşadığını görüyorum.
 
sadece 1 saatlik grafikte çalışıyor
 
tamam. 30 dakikalık grafikte çalışıyor ancak ödeme yapıldığında sipariş girmeye devam ediyor. bu yüzden yeni bir siparişe girmeden önce 30 dakikalık mumun oluşmasını beklemeyin.
 

ayy

Girdikten sonra devre dışı bırakmayı unutuyorum.

kodu değiştirmeme izin ver

Neden: