Je rédigerai un conseiller gratuitement - page 63

 
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 vous avez besoin d'aide, contactez-moi sur facebook https://vk.com/id16112208 ou en personne.
Метод торговли на FOREX (Безубыточный)
Метод торговли на FOREX (Безубыточный)
  • 2016.01.11
  • www.youtube.com
САЙТ – http://forexbid.jimdo.com/strategy/metod/ ФОРУМ – http://forex.forumex.ru/viewtopic.php?f=5&t=45&p=73#p73 Возврат спреда http://www.getforexrebate.com...
 
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.
Mais lors d'un long plat, il peut perdre ...
 
J'en déduis qu'il ne s'agit pas d'un long appartement, mais du moment exact où l'appartement s'étend ? Est-il possible d'en obtenir un ?
 
votre service de rabais globegain.com est-il correct ? pourquoi forex4u donne-t-il autant - 18,6 $ par lot....insta - 14,3 $.... Est-ce réel ?
 

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.

//+------------------------------------------------------------------+
//|                                                      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
//--- Inputs
input double SL             =500; //стоп лос
input double TakeProfit     =1000; //тейк профит
input double Lots           =0.01; //розмер лота
//input double MaximumRisk    =0.1; //отключил не понятна логика расчета
input double DecreaseFactor = 3; //фактор снижение(наверно проскальзывание)
input int    MovingPeriod1  =36; //медленная средняя
input int    MovingPeriod2  =12; //быстрая средняя
input int    MovingShift1   =10; //сдвиг медленной средней
input int    MovingShift2   = 0; //сдвиг быстрой средней
extern int   TimeStart      = 8; //время начала торгов
extern int   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);
   else       return(-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  //функция нового тика                                                |
//+------------------------------------------------------------------+
void OnTick()
  {
//--- check for history and trading
   if(Bars<100 || IsTradeAllowed()==false)
      return;
//--- calculate open orders by current symbol
   if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
   else                                    CheckForClose();
//---
  }
//+------------------------------------------------------------------+
 
Sergey Zaitsev:
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.

 
alstefanov:

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.
Raison: