Mon compte
Déjà membre ? S'identifier
Non inscrit ? S'inscrire
 
+ Répondre à la discussion
Page 1 sur 2 1 2 DernièreDernière
Affichage des résultats 1 à 10 sur 12
  1. #1
    Nouveau membre Laura est sur la route de la réputation...
    Date d'inscription
    July 2011
    Messages
    11
    Pouvoir de réputation
    3

    iCustom, est-ce possible? iCustom, est-ce possible?

    Coucou,

    voilà j'aurais quelques questions au sujet de iCustom. Comme je disais en présentation, je trade en réel depuis quelques mois.
    Pour l'instant je suis très satisfaite de ma stratégie, le soucis, c'est que visuellement c'est surchargé (5 indicateurs lol), donc j'avoue que je m'interessais pas du tout à la programmation, mais depuis quelques semaines j'y pense de plus en plus.
    L'objectif étant de ne visualiser qu'un message qui dirait "achat" ou "attendre" ou "vendre".
    Est-ce possible de faire ça avec iCustom? Si oui, si quelqu'un pouvait m'orienter vers un code de base ou un truc de ce genre pour que ça me serve de modèle, ça serait gentil.

    Bises

  2. #2
    Membre Star remjie est actif et passionnant Avatar de remjie
    Date d'inscription
    January 2011
    Localisation
    Rhone
    Messages
    279
    Pouvoir de réputation
    10

    Bonjour a toi,
    l'iCustom s'utilise concernant des indicateurs modifiés, si tu utilise des indicateur pré programmé dans MT4, il existe des fonctions intégrées dans MQ. (iRSI, iMA, etc..)
    je te propose d'échanger sur le sujet si tu le souhaite par mail et skype.
    Ces derniers sont dispo sur mon profil.
    Mieux vaut ouvrir sa gueule et passer pour un con que la fermer et ne laisser aucun doute sur le sujet.

  3. #3
    Nouveau membre Laura est sur la route de la réputation...
    Date d'inscription
    July 2011
    Messages
    11
    Pouvoir de réputation
    3

    Hello remje,

    merci de ta réponse

    Justement il s'agit d'indicateurs modifiés du coup je sais pas comment les intégrer dans meta editor

  4. #4
    Nouveau membre Laura est sur la route de la réputation...
    Date d'inscription
    July 2011
    Messages
    11
    Pouvoir de réputation
    3

    Re,

    C'est bon, j'ai trouvé (je me suis servi d'expert advisor builder), par contre tu peux m'aider pour le code de signal d'achat et de vente, j'ai pas réussi à le faire avec l'expert advisor builder .

    En fait les conditions c'est ça:
    Si var#1 est bleu, que var#2 est bleu et que var#3 traverse var#1 par le bas alors acheter
    Si var#1 est rouge, que var#2 est rouge et que var#3 traverse par le haut var#1 alors vendre.


    Merci à celui ou celle qui prendra le temps de répondre

  5. #5
    Membre Star remjie est actif et passionnant Avatar de remjie
    Date d'inscription
    January 2011
    Localisation
    Rhone
    Messages
    279
    Pouvoir de réputation
    10

    Envoie moi les fichiers.

    je verrais comment te faire ça.
    Dernière modification par Edellion ; 23/07/2011 à 19h53.
    Mieux vaut ouvrir sa gueule et passer pour un con que la fermer et ne laisser aucun doute sur le sujet.

  6. #6
    Nouveau membre Laura est sur la route de la réputation...
    Date d'inscription
    July 2011
    Messages
    11
    Pouvoir de réputation
    3

    Je te transmets le bout du code.
    il faut que var#1 traverse à la baisse var# pour acheter et l'inverse pour la vente.
    Par contre j'ai constaté des erreurs en faisant le backtest, capture backtest.JPG
    comme tu peux le voir y a plusieurs positions ouvertes et fermer, c'est le bordel lol, comment faire pour qu'il n'y ai qu'une seule position ouverte?

    Merci et bisous


    //Check position
    bool IsTrade = False;

    for (int i = 0; i < Total; i ++) {
    OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
    if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
    IsTrade = True;
    if(OrderType() == OP_BUY) {
    //Close

    //+------------------------------------------------------------------+
    //| Signal Begin(Exit Buy) |
    //+------------------------------------------------------------------+

    if (CloseBuy1_1 > CloseBuy1_2) Order = SIGNAL_CLOSEBUY;


    //+------------------------------------------------------------------+
    //| Signal End(Exit Buy) |
    //+------------------------------------------------------------------+

    if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
    OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
    if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
    if (!EachTickMode) BarCount = Bars;
    IsTrade = False;
    continue;
    }
    //Trailing stop
    if(UseTrailingStop && TrailingStop > 0) {
    if(Bid - OrderOpenPrice() > Point * TrailingStop) {
    if(OrderStopLoss() < Bid - Point * TrailingStop) {
    OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
    if (!EachTickMode) BarCount = Bars;
    continue;
    }
    }
    }
    } else {
    //Close

    //+------------------------------------------------------------------+
    //| Signal Begin(Exit Sell) |
    //+------------------------------------------------------------------+

    if (CloseSell1_1 < CloseSell1_2) Order = SIGNAL_CLOSESELL;


    //+------------------------------------------------------------------+
    //| Signal End(Exit Sell) |
    //+------------------------------------------------------------------+

    if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
    OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
    if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
    if (!EachTickMode) BarCount = Bars;
    IsTrade = False;
    continue;
    }
    //Trailing stop
    if(UseTrailingStop && TrailingStop > 0) {
    if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
    if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
    OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
    if (!EachTickMode) BarCount = Bars;
    continue;
    }
    }
    }
    }
    }
    }

    //+------------------------------------------------------------------+
    //| Signal Begin(Entry) |
    //+------------------------------------------------------------------+

    if (Buy1_1 < Buy1_2) Order = SIGNAL_BUY;

    if (Sell1_1 > Sell1_2) Order = SIGNAL_SELL;


    //+------------------------------------------------------------------+
    //| Signal End |
    //+------------------------------------------------------------------+

    //Buy
    if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
    if(!IsTrade) {
    //Check free margin
    if (AccountFreeMargin() < (1000 * Lots)) {
    Print("We have no money. Free Margin = ", AccountFreeMargin());
    return(0);
    }

    if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
    if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;

    Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
    if(Ticket > 0) {
    if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
    Print("BUY order opened : ", OrderOpenPrice());
    if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
    } else {
    Print("Error opening BUY order : ", GetLastError());
    }
    }
    if (EachTickMode) TickCheck = True;
    if (!EachTickMode) BarCount = Bars;
    return(0);
    }
    }

    //Sell
    if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
    if(!IsTrade) {
    //Check free margin
    if (AccountFreeMargin() < (1000 * Lots)) {
    Print("We have no money. Free Margin = ", AccountFreeMargin());
    return(0);
    }

    if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;
    if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;

    Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);
    if(Ticket > 0) {
    if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
    Print("SELL order opened : ", OrderOpenPrice());
    if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
    } else {
    Print("Error opening SELL order : ", GetLastError());
    }
    }
    if (EachTickMode) TickCheck = True;
    if (!EachTickMode) BarCount = Bars;
    return(0);
    }
    }

    if (!EachTickMode) BarCount = Bars;

    return(0);
    }
    //+------------------------------------------------------------------+

  7. #7
    Nouveau membre Forexhamid est sur la route de la réputation... Avatar de Forexhamid
    Date d'inscription
    July 2011
    Localisation
    Algerie
    Messages
    3
    Pouvoir de réputation
    3

    Bonjour Laura , tout est possible en programmation , on peut faire un modele et le corrigé ensemble
    excellente journée
    Dernière modification par Edellion ; 24/07/2011 à 14h21.

  8. #8
    Membre Star condor666 deviendra bientot célèbre...
    Date d'inscription
    May 2008
    Localisation
    Alsace
    Messages
    835
    Pouvoir de réputation
    0

    Franchement le meilleur moyen pour créer un EA c'est d'ouvrir word et d'écrire ce que l'on veut que son EA fasse, ensuite il suffit de traduire ça en langage MT4

  9. #9
    Membre Star remjie est actif et passionnant Avatar de remjie
    Date d'inscription
    January 2011
    Localisation
    Rhone
    Messages
    279
    Pouvoir de réputation
    10

    Salut, n'aurais -tu pas plutot les indics d'origine, histoire que je fasse quelque chose de propre?
    Mieux vaut ouvrir sa gueule et passer pour un con que la fermer et ne laisser aucun doute sur le sujet.

  10. #10
    Nouveau membre Laura est sur la route de la réputation...
    Date d'inscription
    July 2011
    Messages
    11
    Pouvoir de réputation
    3

    re ! J'ai bien avancé depuis hier, j'ai refait mon code sans l'expert advisor builder, (moins chargé et ça marche autant lol), pas de soucis pour passer les ordres, par contre pour les stopper c'est une autre histoire, ça ne marche pas.

    Pas moyen de faire clôturer une position, elle ne se clôture que si elle atteint le take profit ou le stop loss.
    Tu peux m'aider à régler le soucis?

    Code:
    for (int i = 0; 1 < OrdersTotal (); i++) {
          if (OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == False){
                   break;
                   }
                      NumPos++;
         }
         
     
    //Vente
          
          if (!NumPos && Sell1_1 > Sell1_2 && Sell1_3 < Var3){
          OrderSend (Symbol (), OP_SELL, 1, Bid, 3, Bid + 1000 * Point, Bid - 500 * Point, "Vente", 0, 0, Red);
              
    }
    
    //Stop Vente
    
       if (CloseSell1_3 > Var3) {
       OrderClose (OrderTicket (), OrderLots (), Ask, 3, CLR_NONE);
        
       
       }

Discussions similaires

  1. iCustom
    Par condor666 dans le forum Programmation
    Réponses: 3
    Dernier message: 13/07/2011, 22h21
  2. iCustom sur chaque tick
    Par Alphajet73 dans le forum Programmation
    Réponses: 0
    Dernier message: 25/02/2011, 19h04
  3. recuperation de donner icustom
    Par skl23105 dans le forum Systèmes de Trading Auto
    Réponses: 7
    Dernier message: 19/02/2011, 16h28
  4. Metatrader Icustom
    Par william210 dans le forum Programmation
    Réponses: 2
    Dernier message: 12/11/2010, 08h09
  5. iCustom
    Par condor666 dans le forum Programmation
    Réponses: 7
    Dernier message: 05/05/2009, 14h55

Ajouter aux Favoris | Plan du site | Archives | Forex | Contact