Besoin d'aide pour créer un EA TRÈS simple - page 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);
}


J'ai mis en place une première exécution pour résoudre ce problème et d'autres.

Je n'ai pas testé le code

Merci de tester et d'indiquer d'autres modifications.

 

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 y a-t-il un moyen de modifier le stop loss pour qu'il soit à 15 ou 20 au lieu de l'autre extrémité de la bougie ?


OUI. C'est possible.

 

Est-ce que c'est celui de la moyenne 2hrs ? ou une autre version du 30min ?


Si c'est la moyenne sur 2 heures, elle n'a exécuté aucune transaction hier.

 
crazfoto:

Est-ce que c'est celui de la moyenne des 2 heures ? ou une autre version des 30 minutes ?


Si c'est la moyenne sur 2 heures, il n'a pas exécuté de transactions hier.

Vous voulez dire mes codes ?

Il a été mis en place pour 30 minutes comme vous l'avez demandé.

 

Oh, c'est ma faute. Je vais le tester maintenant.


Je pense que si je change le stop à disons 15 ou 20 pips sur un graphique en 4h, les résultats seront bons. et ce à quoi je suis habitué.

 
Est-ce que cela fonctionnera sur un graphique 2 heures hors ligne ? Je vois que beaucoup de personnes ont des problèmes à utiliser des EA sur des graphiques hors ligne.
 
Il ne fonctionne que sur le graphique en 1 heure
 
ok. il fonctionne sur le graphique 30min mais il continue d'entrer un ordre dès qu'il y a un paiement. donc il n'attend pas que la bougie 30min ait fini de se former avant d'entrer un nouvel ordre.
 

Oups.

J'ai oublié de le désactiver une fois qu'il est entré.

laissez-moi modifier le code