Sergey Zaitsev: Bonjour. Pouvez-vous écrire un EA sur cette stratégie https://www.youtube.com/watch?v=V58JIhy2rw4. Ou n'avez-vous pas un autre EA, qui stagne sur place ou qui fait un peu de profit..... Pour les gains sur rabais sur le site fxcash.ru. Merci. Dans ce cas, veuillez contacter https://vk.com/id16112208 ou en privé.
Oui, j'ai écrit ce type de chouettes.
****
Pour un rabais, c'est bien. Permet d'obtenir beaucoup de lots sans beaucoup d'inconvénients.
J'ai décidé de robotiser un peu mon trading. J'ai utilisé un conseiller expert en tendances du terminal MT4"MovingAverage". J'ai décidé d'utiliser mon propre EA à partir du terminal MT4 et j'ai fait quelques légères modifications. J'ai ajouté un masque supplémentaire, modifié les conditions d'entrée et de sortie, ajouté un stop et un profit et limité le temps d'ouverture. Je voudrais en ajouter d'autres.
1) La possibilité d'ouvrir deux ordres à la fois avec un stop loss réglable, un take profit, un passage à zéro.
2) Le nombre d'entrées par jour est réglable.
3) Possibilité ajustable d'entrer le jour suivant lorsqu'une transaction est ouverte.
4) Sortie réglable par stop loss, no loss ou take profit.
5)Suppression du calcul du risque maximum. (Besoin particulier je ne le vois pas, d'ailleurs je ne comprends pas comment il calcule le risque, l'impression que depuis le fond, les lots ont été ouverts puis 0.10 puis 1.00)
6) Ne fonctionne pas correctement sur la paire de devises USDJPY
Peut-être quelque chose à réparer, à nettoyer pour améliorer le travail de l'EA. Aide ou conseils.
Fonctionne sur plus de dix graphiques simultanément, dans chaque fenêtre du graphique de la paire de devises a son propre EA. Le code est joint. Merci à tous ceux qui ont répondu.
//+------------------------------------------------------------------+//| MA_MA_1.mq4 |//| Copyright 2017, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2017, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//#property strict#define MAGICMA 20131112//--- Inputsinputdouble SL =500; //стоп лосinputdouble TakeProfit =1000; //тейк профитinputdouble Lots =0.01; //розмер лота//input double MaximumRisk =0.1; //отключил не понятна логика расчетаinputdouble DecreaseFactor = 3; //фактор снижение(наверно проскальзывание)inputint MovingPeriod1 =36; //медленная средняяinputint MovingPeriod2 =12; //быстрая средняяinputint MovingShift1 =10; //сдвиг медленной среднейinputint MovingShift2 = 0; //сдвиг быстрой среднейexternint TimeStart = 8; //время начала торговexternint TimeStop =20; //время окончания торгов//+------------------------------------------------------------------+//| Calculate open positions //считаем открытые позиции |//+------------------------------------------------------------------+int CalculateCurrentOrders(string symbol)
{
int buys=0,sells=0;
//---for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
{
if(OrderType()==OP_BUY) buys++;
if(OrderType()==OP_SELL) sells++;
}
}
//--- return orders volume //объём ордеров на возвратif(buys>0) return(buys);
elsereturn(-sells);
}
//+------------------------------------------------------------------+//| Calculate optimal lot size //расчет оптимального размера лота |//+------------------------------------------------------------------+double LotsOptimized()
{
double lot=Lots;
int orders=HistoryTotal(); // history orders total (история заказов всего)int losses=0; // number of losses orders without a break (количество потерь заказов без перерыва)//--- select lot size //ОТКЛЮЧИЛ выбор размер лота. //lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);//(логика выбора мне не понятна)//--- calcuulate number of losses orders without a break (Расчет количества заказов на потери без перерыва)// if(DecreaseFactor>0)// {// for(int i=orders-1;i>=0;i--)// {// if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)// {// Print("Error in history!");// break;// }// if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL)// continue;//---// if(OrderProfit()>0) break;// if(OrderProfit()<0) losses++;// }// if(losses>1)// lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);// }//--- return lot size (розмер возвращаемого лота)if(lot<0.1) lot=0.1;
return(lot);
}
//+------------------------------------------------------------------+//| Check for open order conditions //проверка условий для открытия ордера |//+------------------------------------------------------------------+void CheckForOpen()
{
double ma1; //медленная средняяdouble ma2; //быстрая средняяint res;
//--- go trading only for first tiks of new bar// торговать только на первом тике нового бараif(Volume[0]>1) return;
//--- get Moving Average //получение скользящих средних
ma1=iMA(NULL,0,MovingPeriod1,MovingShift1,MODE_SMA,PRICE_CLOSE,0);//медленная
ma2=iMA(NULL,0,MovingPeriod2,MovingShift2,MODE_SMA,PRICE_CLOSE,0);//быстрая//--- sell conditions //условия для продажиif(ma1<ma2 && Close[1]<ma1 && TimeHour(TimeCurrent())>TimeStart && TimeHour(TimeCurrent())<TimeStop)
{
res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,Bid+SL*Point,Bid-TakeProfit*Point,"",MAGICMA,0,Red);
return;
}
//--- buy conditions //условия для покупкиif(ma1>ma2 && Close[1]>ma1 && TimeHour(TimeCurrent())>TimeStart && TimeHour(TimeCurrent())<TimeStop)
{
res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,Ask-SL*Point,Ask+TakeProfit*Point,"",MAGICMA,0,Blue);
return;
}
//---
}
//+------------------------------------------------------------------+//| Check for close order conditions //проверка условий для закрытия ордера |//+------------------------------------------------------------------+void CheckForClose()
{
double ma1;//медленнаяdouble ma2;//быстрая//--- go trading only for first tiks of new bar// торговать толькона тике нового бараif(Volume[0]>1) return;
//--- get Moving Average //получение средних
ma1=iMA(NULL,0,MovingPeriod1,MovingShift1,MODE_SMA,PRICE_CLOSE,0);//медленная
ma2=iMA(NULL,0,MovingPeriod2,MovingShift2,MODE_SMA,PRICE_CLOSE,0);//быстрая//---for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
//--- check order type //проверка типа ордераif(OrderType()==OP_BUY)
{
if(Close[1]<ma2 && Open[2]>Close[1] && ma1<ma2) //(Open[1]>ma && Close[1]<ma)
{
if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,White))
Print("OrderClose error ",GetLastError());
}
break;
}
if(OrderType()==OP_SELL)
{
if(Close[1]>ma2 && Open[2]<Close[1] && ma1>ma2)
{
if(!OrderClose(OrderTicket(),OrderLots(),Ask,3,White))
Print("OrderClose error ",GetLastError());
}
break;
}
}
//---
}
//+------------------------------------------------------------------+//| OnTick function //функция нового тика |//+------------------------------------------------------------------+voidOnTick()
{
//--- check for history and tradingif(Bars<100 || IsTradeAllowed()==false)
return;
//--- calculate open orders by current symbolif(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
else CheckForClose();
//---
}
//+------------------------------------------------------------------+
Je peux avoir de l'aide ? Le conseiller expert récupère les transactions chaque tick. Comment puis-je écrire le code pour enlever environ 5 transactions ou seulement autant que je le souhaite ?
Je peux avoir de l'aide ? Le conseiller expert récupère les transactions à chaque tick. Comment puis-je écrire le code pour tirer environ 5 transactions ou seulement autant que je le souhaite ?
Que dois-je changer ou ajouter au code ?
Je devrais ajouter une boucle et limiter le nombre d'ordres avant d'exécuter OrderSend.
Bonjour. Pouvez-vous écrire un EA sur cette stratégie https://www.youtube.com/watch?v=V58JIhy2rw4. Ou n'avez-vous pas un autre EA, qui stagne sur place ou qui fait un peu de profit..... Pour les gains sur rabais sur le site fxcash.ru. Merci. Dans ce cas, veuillez contacter https://vk.com/id16112208 ou en privé.
Bonjour !
J'ai décidé de robotiser un peu mon trading. J'ai utilisé un conseiller expert en tendances du terminal MT4"Moving Average". J'ai décidé d'utiliser mon propre EA à partir du terminal MT4 et j'ai fait quelques légères modifications. J'ai ajouté un masque supplémentaire, modifié les conditions d'entrée et de sortie, ajouté un stop et un profit et limité le temps d'ouverture. Je voudrais en ajouter d'autres.
1) La possibilité d'ouvrir deux ordres à la fois avec un stop loss réglable, un take profit, un passage à zéro.
2) Le nombre d'entrées par jour est réglable.
3) Possibilité ajustable d'entrer le jour suivant lorsqu'une transaction est ouverte.
4) Sortie réglable par stop loss, no loss ou take profit.
5)Suppression du calcul du risque maximum. (Besoin particulier je ne le vois pas, d'ailleurs je ne comprends pas comment il calcule le risque, l'impression que depuis le fond, les lots ont été ouverts puis 0.10 puis 1.00)
6) Ne fonctionne pas correctement sur la paire de devises USDJPY
Peut-être quelque chose à réparer, à nettoyer pour améliorer le travail de l'EA. Aide ou conseils.
Fonctionne sur plus de dix graphiques simultanément, dans chaque fenêtre du graphique de la paire de devises a son propre EA. Le code est joint. Merci à tous ceux qui ont répondu.
Bonjour. Pouvez-vous utiliser cette stratégie pour rédiger un conseiller https://www.youtube.com/watch?v=V58JIhy2rw4. Ou avez-vous un conseiller qui stagne en place ou qui est légèrement dans le noir..... Pour les gains sur rabais sur le site fxcash.ru. Merci. Si ce bip dans Ek https://vk.com/id16112208 ou en privé.
Regardez la branche Avalanche, il y a des conseillers pour cette TS.
Bonjour !
Je peux avoir de l'aide ? Le conseiller expert récupère les transactions chaque tick. Comment puis-je écrire le code pour enlever environ 5 transactions ou seulement autant que je le souhaite ?
extern int tp=50 ;
extern int sl=200 ;
extern double lot=0.01 ;
oid OnTick()
{
OrderSend("USDJPY",OP_SELL,lot,Bid,0,Ask+sl*Point,Ask-tp*Point, "Batsasho",1,0,Red) ;
}
Que dois-je changer ou ajouter au code ?
Merci !
Si je ne complique pas les choses, vous pouvez répondre à la question.
Merci !
J'ai essayé de refaire les modèles prêts à l'emploi, mais à la fin ils donnent quelques erreurs, tout ce dont j'ai besoin est une chouette :
1) ouvre une position d'achat si la bougie fermée est haussière, et une position de vente si la bougie fermée est baissière.
2) et ainsi de suite après CHAQUE chandelier.
J'ai la deuxième condition qui ne fonctionne pas.
Si quelqu'un peut m'aider, je lui en serai très reconnaissant.
Je peux avoir de l'aide ? Le conseiller expert récupère les transactions à chaque tick. Comment puis-je écrire le code pour tirer environ 5 transactions ou seulement autant que je le souhaite ?
Que dois-je changer ou ajouter au code ?