Si vous voulez regarder dans le testeur, vous pouvez supprimer le test pour une heure ultérieure à l'heure réelle. C'est dans OnInit. Et je ne me souviens pas si dans 4ka dans le testeur une demande de temps retournera exactement le temps du testeur. Je pense qu'il renverra l'heure actuelle, donc dans le testeur il y a juste des commandes en une fois et c'est tout. La demande de l'heure locale donnera également l'heure locale actuelle.
C'est dans le 5k dans le testeur un émulateur d'environnement complet.
S'il vous plaît, aidez-moi à faire des corrections. Cet EA ne ferme pas de force les ordres ouverts. J'aimerais pouvoir définir l'heure de fermeture forcée en même temps que l'heure de fixation des limites. J'ai besoin de TP et de trall pour les optimiser. Un trall, de sorte que toutes les limites seraient fermées de manière modeste mais collecter le bruit nocturne.
Bonjour. Qui peut vous aider avec un EA pour MT4. J'ai besoin d'un EA sans trucage pour suivre les ordres passés manuellement (avec ou sans magie). Si un ordre est fermé sur un stop loss, l'EA ouvre un nouvel ordre dans la même direction avec le lot, le SL et le TP spécifiés.Si un ordre est fermé sur un take profit, l'EA ouvre un nouvel ordre dans la direction opposée avec le lot, le SL et le TP spécifiés. Il existe peut-être des solutions toutes faites, mais je n'ai rien trouvé. Merci d'avance.
Anton Yakovlev: Si vous avez une bonne stratégie et que vous êtes prêt à la partager, je peux écrire un EA.
Bonjour, j'ai besoin d'un indicateur qui fonctionne sur la base des mouvements des bougies (pattern). est-il possible de l'écrire, combien et comment passer votre demande.
Placez 2 ordres d'achat limite/vente limite dirigés différemment à une distance X l'un de l'autre avec stop, take, trawl.
Par exemple :
Si le prix atteint l'une des limites et ferme cet ordre au stop ou à la prise, la limite opposée est annulée et 2 limites dirigées différemment sont à nouveau fixées.
Je veux dire que si le spread est supérieur à 5 pips, par exemple, il ne faut pas passer d'ordres en attente, mais si cela pose trop de problèmes, vous pouvez ignorer ce paramètre.
Ivan Bielyi #: Je veux dire que si l'écart est supérieur à 5 points, nous ne devrions pas placer d'ordres en attente, mais si c'est très problématique, nous pouvons ignorer ce paramètre.
Quel est l'intérêt ? Ils ne seront pas exécutés maintenant (ce sont des limites). Et lorsque le moment sera venu de l'exécuter, la répartition sera complètement différente.
Quel est l'intérêt ? Ils ne seront pas exécutés maintenant (ce sont des limites). Et lorsque le moment sera venu de l'exécuter, la répartition sera complètement différente.
Si vous voulez regarder dans le testeur, vous pouvez supprimer le test pour une heure ultérieure à l'heure réelle. C'est dans OnInit. Et je ne me souviens pas si dans 4ka dans le testeur une demande de temps retournera exactement le temps du testeur. Je pense qu'il renverra l'heure actuelle, donc dans le testeur il y a juste des commandes en une fois et c'est tout. La demande de l'heure locale donnera également l'heure locale actuelle.
C'est dans le 5k dans le testeur un émulateur d'environnement complet.
Merci pour la clarification
https://www.mql5.com/ru/code/10236.
//+------------------------------------------------------------------+
//| i`lbeback.mq4 |
//| Copyright ? 2011, AM2 && Tiburond |
//| http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright ? 2011, AM2 && Tiburond"
#property link "http://www.forexsystems.biz"
#define MAGIC 20110406
extern int StopLoss = 1300; //???????? ??????
extern int StartHour = 21; //??? ?????? ????????(???????????? ?????)
extern int Distance = 250; //?????????? ?? ???? ??? ????????? ??????
extern int Step = 50; //??? ????????? ???????
extern int Count = 4; //?????????? ??????????????? ???????
extern int Expiration = 4; //????? ????????? ??????
extern double Lots = 1; //???
extern bool MM = true; //?????????? ???????????????
extern double TSP = 5; //????
extern bool BU = true; //?????????? ?????? ??????? ? ????????? ? ??????? ???
extern int BUHour = 2; //??? ????? ??????? ??????? ??????? ? ?????????
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
int b=0,s=0,res;
datetime expiration = TimeCurrent()+3600*Expiration;
double BuyPrice=fND(Open[0]-Distance*Point);
double SellPrice=fND(Open[0]+Distance*Point);
for (int i=OrdersTotal()-1;i>=0;i--)
{
if (OrderSelect(i, SELECT_BY_POS))
{
if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue;
if (OrderType()==OP_BUYLIMIT) b++;
if (OrderType()==OP_SELLLIMIT) s++;
}
}
if (Hour()>BUHour && Hour()<StartHour && AllProfit()>0) ClosePositions();
if (Hour()>BUHour && DayOfWeek() == 5) ClosePositions();
if (Hour()==StartHour && b<1 && DayOfWeek() != 5)
for(i=1;i<=Count;i++)
{
{
res=OrderSend(Symbol(),OP_BUYLIMIT,fLots(),fND(Ask-(Distance*Point+i*Step*Point)),3,fND(BuyPrice-StopLoss*Point),fND(Open[0]),"",MAGIC,expiration,Blue);
Sleep(3000);
if(res<0)
{
Print("??????: ",GetLastError());
} else {
RefreshRates();
}
}
}
if (Hour()==StartHour && s<1 && DayOfWeek() != 5)
for(i=1;i<=Count;i++)
{
{
res=OrderSend(Symbol(),OP_SELLLIMIT,fLots(),fND(Bid+(Distance*Point+i*Step*Point)),3,fND(SellPrice+StopLoss*Point),fND(Open[0]),"",MAGIC,expiration,Red );
Sleep(3000);
if(res<0)
{
Print("??????: ",GetLastError());
} else {
RefreshRates();
}
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
double fND(double d, int n=-1)
{
if (n<0) return(NormalizeDouble(d, Digits));
return(NormalizeDouble(d, n));
}
//+------------------------------------------------------------------+
double fLots()
{
double lot=Lots;
double lot_min =MarketInfo( Symbol(), MODE_MINLOT );
double lot_max =MarketInfo( Symbol(), MODE_MAXLOT );
if (MM)
{
double lot_step =MarketInfo( Symbol(), MODE_LOTSTEP );
double lotcost =MarketInfo( Symbol(), MODE_TICKVALUE );
double dollarsPerPip=0.0;
lot = AccountFreeMargin()*TSP/100.0;
dollarsPerPip=lot/StopLoss;
lot=fND(dollarsPerPip/lotcost, 2);
lot=fND(lot/lot_step, 0) * lot_step;
}
if (lot<lot_min) lot=lot_min;
if (lot>lot_max) lot=lot_max;
return(lot);
}
//+------------------------------------------------------------------+
void ClosePositions()
{
if(BU)
for (int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol())
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)
{
if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, 3, Blue);
if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, 3, Red);
}
Sleep(1000);
}
}
}
//+------------------------------------------------------------------+
double AllProfit()
{
double Profit = 0;
for (int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MAGIC) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)
if (OrderType() == OP_BUY || OrderType() == OP_SELL) Profit += OrderProfit();
}
return (Profit);
}
//+------------------------------------------------------------------+
S'il vous plaît, aidez-moi à faire des corrections. Cet EA ne ferme pas de force les ordres ouverts. J'aimerais pouvoir définir l'heure de fermeture forcée en même temps que l'heure de fixation des limites.
J'ai besoin de TP et de trall pour les optimiser. Un trall, de sorte que toutes les limites seraient fermées de manière modeste mais collecter le bruit nocturne.
Si vous avez une bonne stratégie et que vous êtes prêt à la partager, je peux écrire un EA.
Comment limiter le spread sur les ordres à cours limité ?
Et comment limiter l'écart sur les limiteurs ?
Je veux dire que si l'écart est supérieur à 5 points, nous ne devrions pas placer d'ordres en attente, mais si c'est très problématique, nous pouvons ignorer ce paramètre.
Quel est l'intérêt ? Ils ne seront pas exécutés maintenant (ce sont des limites). Et lorsque le moment sera venu de l'exécuter, la répartition sera complètement différente.
Quel est l'intérêt ? Ils ne seront pas exécutés maintenant (ce sont des limites). Et lorsque le moment sera venu de l'exécuter, la répartition sera complètement différente.
Ce qu'il prend comme base et la complexité de l'algorithme.
Détermine la tendance de la moyenne mobile