Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 350

 
Forexman77:

Sur l'image, j'ai marqué d'une flèche l'endroit où la sortie doit se trouver. Je ne comprends pas quel est le problème. On entre, on se rappelle l'heure,

Ensuite, sortez lorsque le temps est plus long que l'entrée avec un décalage d'une période et que le prix est inférieur à la MA min de 3 jours.

Le code est le suivant :

Que suggérez-vous ?

Vente à découvert sur l'Ascus ! Il est plus élevé ! Ask-Bid=spread ;

Corrigez cette ligne du code :

if  (Bid <= MA_2_t)

// на

if  (Ask <= MA_2_t)

Ensuite, il se fermera comme souhaité, mais il peut s'inverser à tout moment. Nous devons nous contenter de peu !

 
Forexman77:


Sur l'image, j'ai marqué d'une flèche l'endroit où la sortie doit se trouver. Je ne comprends pas quel est le problème. On entre, on se rappelle l'heure,

Ensuite, sortez lorsque le temps est plus long que l'entrée avec un décalage d'une période et que le prix est inférieur à la MA min de 3 jours.

Le code est le suivant :

Qu'en pensez-vous ?


Je veux dire qu'il serait bon de poster des captures d'écran où l'on peut voir le prix et l'horizon temporel. Peut-être qu'il y a un pipsing sur M1 et que le serveur n'a tout simplement pas le temps de traiter l'ordre à temps.


Et au lieu de t=Time[0] ; mieux vaut utiliser OrderOpenTime().

 
evillive:

Si ce n'est pas trop secret, je veux dire que ce serait bien de publier des captures d'écran où l'on peut voir les prix et le calendrier. Peut-être qu'il y a un pipsing sur M1 et que le serveur n'a tout simplement pas le temps de traiter l'ordre.


Utilisez OrderOpenTime() au lieu de t=Time[0] ;.

Eurêka ! J'ai compris pourquoi.

signal > 0.006 presque toujours, il continue donc à mettre à jour t=Time[0] ; et la transaction ne se ferme pas.

Je mets t=Temps[0] ; dans le bloc où est annoncé le fait d'ouvrir une position.

 

Bonjour à tous, comment l'EA testé se comporte-t-il face aux gaps ? C'est à dire que sur le test, il montre un bon profit, mais sur la démo, il a été gapping tout depuis deux jours déjà :(.

 

Bonjour à tous !

J'ai créé un EA en croisant deux EMA, c'est mon premier EA et j'ai peur d'avoir fait quelques erreurs stupides, donc je demande aux professionnels de revoir le code et de me donner des conseils si quelque chose ne va pas.

Cet EA doit trader sur le marché des bitcoins, le prix peut augmenter de 30% par jour, donc le stoploss et le takeprofit doivent être en pourcentage du prix.

Je l'ai testé sur un compte de démonstration, il semble fonctionner, mais j'ai peur de l'utiliser sur un compte réel, le lot minimum est d'environ 7 $, et le compte central n'a pas de courtier.

Je n'ai pas encore attaché de trailing stop, et je vais comparer la différence EMA non pas avec zéro, mais avec une petite valeur, pour éviter des trades fréquents quand les courbes sont parallèles.

Le programme est principalement constitué de morceaux tirés d'exemples et de didacticiels, et je crains donc de m'être trompé quelque part en le mettant au point.

Variables :

#property copyright "me"
#property link      "killnosock.net"
extern int SlowEma = 21;
extern int FastEma = 10;
extern int MaxRisk = 100;// % депо которое будет использоваться для открытия ордера
extern int  TakeProfit=100;
extern int  StopLoss=100;
extern int Slippage = 10;

int LastBars = 0;

int init(){return(0);}
int deinit() {return(0);}

Cette fonction définit la taille du lot :

double GetLot(int Risk)
{double Free    =AccountFreeMargin();
 double One_Lot =MarketInfo(Symbol(),MODE_MARGINREQUIRED);
 double Min_Lot =MarketInfo(Symbol(),MODE_MINLOT);
 double Max_Lot =MarketInfo(Symbol(),MODE_MAXLOT);
 double Step    =MarketInfo(Symbol(),MODE_LOTSTEP);
 double Lot     =MathFloor(Free*Risk/100/One_Lot/Step)*Step;
 if(Lot<Min_Lot) Lot=Min_Lot;
 if(Lot>Max_Lot) Lot=Max_Lot;
 if(Lot*One_Lot>Free) {
 Alert(" free= ", AccountFreeMargin()," for one lot= ", MarketInfo(Symbol(),MODE_MARGINREQUIRED)," lot= ", Lot);
 return(0.0);}
return(Lot);}

Nous ouvrons un ordre ici :

int NewOrder(int Cmd,double Lot)
{double TP=0; //takeprofit
 double SL=0; //stoploss
 double PR=0; //price
 color clr = CLR_NONE;
 while(!IsTradeAllowed()) Sleep(10);
 RefreshRates();
 if(Cmd==OP_BUY)
   {PR=Ask;
    if(TakeProfit>0) TP=Ask + Ask*TakeProfit/100;
    if(StopLoss>0) SL=Ask - Ask*StopLoss/100;
    if(SL<0) SL = 0;
    if(TP<0) TP = 0;
    clr = Green;}
 if(Cmd==OP_SELL)
   {PR=Bid;
    if(TakeProfit>0) TP=Bid - Bid*TakeProfit/100;
    if(StopLoss>0) SL=Bid + Bid*StopLoss/100;
    if(SL<0) SL = 0;
    if(TP<0) TP = 0;
    clr = Red;}
 int tic=OrderSend(Symbol(),Cmd,Lot,PR,Slippage,SL,TP,"",0,0,clr);
 if(tic<0) Print("Open order error: ",GetLastError());
return(tic);}

Ici nous fermons 1 ou tous les ordres

//CloseOrder
void CloseOrder()
{double PR=0;
 while(!IsTradeAllowed()) Sleep(10);
 RefreshRates();
 if(OrderType()==OP_BUY)  PR=Bid;
 if(OrderType()==OP_SELL) PR=Ask;
 if(!OrderClose(OrderTicket(),OrderLots(),PR,Slippage,CLR_NONE))
   Print("Order close error: ",GetLastError());
return;}

//Close all Orders
void CloseAllOrders()
{
  for(int i=OrdersTotal()-1;i>=0;i--)
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
     {
      CloseOrder();
     }
return;}

Cette fonction calcule la différence de deux EMAs

double EmaDiff(int shift)
   {
      double difference;
      difference = iMA(Symbol(),0,FastEma,0,MODE_EMA,PRICE_CLOSE,shift)
                 - iMA(Symbol(),0,SlowEma,0,MODE_EMA,PRICE_CLOSE,shift);
      return(difference);
   }

Et voici le corps du programme

int start()
  {
double Lot;
    // действуем, когда открывается новая свечка
    if (LastBars == Bars) return(0);
    else LastBars = Bars;
      {         
         if ((EmaDiff(1) > 0) && (EmaDiff(2) < 0))
            {
               CloseAllOrders();
               Lot = GetLot(MaxRisk);
               NewOrder(OP_BUY,Lot);
            }
            
         if ((EmaDiff(2) > 0) && (EmaDiff(1) < 0))
            {
               CloseAllOrders();
               Lot = GetLot(MaxRisk);
               NewOrder(OP_SELL,Lot);
            }                    
      }
   return(0);
  }
 

Chers Messieurs, bonjour à tous ! !!

Aidez-moi à conclure les marchés ! !! Il y a un jeu avec des transactions, je l'ai téléchargé d'un site où il y avait un concours où le gars avec 10000 $ pour un mois ou une semaine je ne me souviens pas a fait 300 000 $ ! Comment je peux dire où il a conclu l'affaire ! !! L'heure d'ouverture, le prix, le lot, la paire de devises, tout y est !!!

.........................................................................................................................................................................................................................................


IL Y A TELLEMENT DE TRANSACTIONS, JE NE SAIS PAS OÙ IL LES A TOUTES FERMÉES !


Les résultats sont affichés à partir de 2013-08-29 14:02:05(EET)


TRANSACTION HEURE TYPE LOTS SYMBOLE PRIX SWAP PROFIT

272984 2013-08-05 07:58:50 VENDRE 1.00 EURAUD 1.49556 0 0

272986 2013-08-05 07:58:56 VENDRE 1.00 EURAUD 1.49553 0 0

272988 2013-08-05 07:59:03 VENDRE 1.00 EURAUD 1.49549 0 0

272999 2013-08-05 07:59:57 VENDRE 1.00 EURAUD 1.49534 0 0

273002 2013-08-05 08:00:02 VENDRE 1.00 EURAUD 1.4954 0 0

273004 2013-08-05 08:00:07 VENDRE 1.00 EURAUD 1.4954 0 0

284429 2013-08-05 16:47:27 ACHETER 1.00 EURAUD 1.48839 0 628.85

284432 2013-08-05 16:47:33 ACHETER 1.00 EURAUD 1.48838 0 629.71

284433 2013-08-05 16:47:37 ACHETER 1.00 EURAUD 1.48843 0 625.28

284435 2013-08-05 16:47:43 ACHETER 1.00 EURAUD 1.48857 0 612.81

284439 2013-08-05 16:47:47 ACHETER 1.00 EURAUD 1.48854 0 615.46

284442 2013-08-05 16:47:50 ACHETER 1.00 EURAUD 1.48859 0 611.01

284443 2013-08-05 16:47:51 ACHETER 1.00 EURAUD 1.48859 0 0

284447 2013-08-05 16:48:01 ACHETER 1.00 AUDUSD 0.89056 0 0

284449 2013-08-05 16:48:09 VENDRE 1.00 EURAUD 1.48735 0 -110.44

284451 2013-08-05 16:48:21 ACHETER 1.00 AUDUSD 0.89061 0 0

284454 2013-08-05 16:48:25 ACHETER 1.00 AUDUSD 0.8906 0 0

284458 2013-08-05 16:48:30 ACHETER 1.00 AUDUSD 0.89058 0 0

284461 2013-08-05 16:48:34 ACHETER 1.00 AUDUSD 0.89051 0 0

284465 2013-08-05 16:48:39 ACHETER 1.00 AUDUSD 0.89052 0 0

284469 2013-08-05 16:48:43 ACHETER 1.00 AUDUSD 0.89053 0 0

284472 2013-08-05 16:48:47 ACHETER 1.00 AUDUSD 0.89051 0 0

284475 2013-08-05 16:48:51 ACHETER 1.00 AUDUSD 0.89056 0 0

284479 2013-08-05 16:48:55 ACHETER 1.00 AUDUSD 0.89056 0 0

284483 2013-08-05 16:48:59 ACHETER 1.00 AUDUSD 0.89056 0 0

284487 2013-08-05 16:49:03 ACHETER 1.00 AUDUSD 0.89058 0 0

284491 2013-08-05 16:49:08 ACHETER 1.00 AUDUSD 0.89053 0 0

284492 2013-08-05 16:49:12 ACHETER 1.00 AUDUSD 0.89053 0 0

286130 2013-08-05 16:51:55 BUY STOP 1.00 AUDUSD 0.8915 0 0

288418 2013-08-05 16:52:05 BUY STOP 1.00 AUDUSD 0.89255 0 0

293964 2013-08-05 16:52:14 BUY STOP 1.00 AUDUSD 0.8935 0 0

299297 2013-08-05 16:52:26 BUY STOP 1.00 AUDUSD 0.89459 0 0

299482 2013-08-05 16:52:35 BUY STOP 1.00 AUDUSD 0.89553 0 0

299533 2013-08-05 16:52:53 BUY STOP 1.00 AUDUSD 0.89655 0 0

299595 2013-08-05 16:53:02 BUY STOP 1.00 AUDUSD 0.89703 0 0

300040 2013-08-05 16:53:36 BUY STOP 1.00 AUDUSD 0.89751 0 0

300096 2013-08-05 16:53:46 BUY STOP 1.00 AUDUSD 0.898 0 0

300151 2013-08-06 07:54:49 VENDRE 1.00 AUDUSD 0.89756 4.36 519.04

300153 2013-08-06 07:54:53 VENDRE 1.00 AUDUSD 0.89749 4.36 512.04

300154 2013-08-06 07:54:58 VENDRE 1.00 AUDUSD 0.89743 4.36 506.04

300156 2013-08-06 07:55:01 VENDRE 1.00 AUDUSD 0.89738 4.36 501.04

300158 2013-08-06 07:55:05 VENDRE 1.00 AUDUSD 0.89736 4.36 499.04

300160 2013-08-06 07:55:11 VENDRE 1.00 AUDUSD 0.89772 4.36 535.04

300161 2013-08-06 07:55:15 VENDRE 1.00 AUDUSD 0.89771 4.36 534.04

300163 2013-08-06 07:55:19 VENDRE 1.00 AUDUSD 0.89765 4.36 528.04

300167 2013-08-06 07:55:36 VENDRE 1.00 AUDUSD 0.89733 4.36 496.04

300169 2013-08-06 07:55:40 VENDRE 1.00 AUDUSD 0.89733 4.36 496.04

300171 2013-08-06 07:55:44 VENDRE 1.00 AUDUSD 0.89735 4.36 498.04

300173 2013-08-06 07:55:49 VENDRE 1.00 AUDUSD 0.89732 4.36 495.04

300178 2013-08-06 07:55:52 VENDRE 1.00 AUDUSD 0.89725 4.36 488.04

300181 2013-08-06 07:55:56 VENDRE 1.00 AUDUSD 0.89714 4.36 477.04

 
FEAR:

Chers Messieurs, bonjour à tous ! !!

Aidez-moi à conclure les marchés ! !! Il y a un jeu avec des transactions, je l'ai téléchargé d'un site où il y avait un concours où le gars avec 10000 $ pour un mois ou une semaine je ne me souviens pas a fait 300 000 $ ! Comment je peux dire où il a conclu l'affaire ! !! L'heure d'ouverture, le prix, le lot, la paire de devises, tout y est !!!

.........................................................................................................................................................................................................................................

IL Y A TELLEMENT DE TRANSACTIONS, JE NE SAIS PAS OÙ IL LES A TOUTES FERMÉES !

Il n'y a pas moyen, ils ne précisent pas d'heure de fermeture et de prix, il n'y a pas de gratuité )))).
 
evillive:
Il n'y a pas moyen, ils ne spécifient pas le prix de clôture exprès, il n'y a pas de free())


JE COMPRENDS MAIS IL Y A UN LOT ET UN PRIX ET UN ACHAT OU UNE VENTE PAR EXEMPLE :


284429 2013-08-05 16:47:27 ACHETER 1.00 EURAUD 1.48839 0 628.85

LE PRIX EST DE 1.48839 PAIRE DE DEVISES -EURAUD, LOT 1 BROKER 5 MARK ! !! PROFIT 628 I.E. LE PRIX EST MONTÉ DE 628 PIPS !!! au lot 1 ! !! je veux dire si vous pouvez regarder l'historique, je ne comprends pas, honnêtement il est presque 17h00 mais le prix est beaucoup plus bas que ce 1.48839 ! !! MÊME SI C'EST LE PRIX DE CLÔTURE J'AI COMPTÉ 7000 PIPS JE NE COMPRENDS PAS COMMENT

 
FEAR:


JE COMPRENDS MAIS IL Y A UN LOT ET UN PRIX ET UN ACHAT OU UNE VENTE PAR EXEMPLE :


284429 2013-08-05 16:47:27 ACHETER 1.00 EURAUD 1.48839 0 628.85

LE PRIX EST DE 1.48839 PAIRE DE DEVISES -EURAUD, LOT 1 BROKER 5 MARK ! !! PROFIT 628 I.E. LE PRIX EST MONTÉ DE 628 PIPS !!! au lot 1 ! !! je veux dire si vous pouvez regarder l'historique, je ne comprends pas, honnêtement il est presque 17h00 mais le prix est beaucoup plus bas que ce 1.48839 ! !! MÊME SI C'EST LE PRIX DE CLÔTURE J'AI COMPTÉ 7000 PIPS JE NE COMPRENDS PAS COMMENT C'EST POSSIBLE


Où avez-vous compté 7000 pips ? C'est le prix d'ouverture, mais même si c'était le prix de clôture, un seul prix ne suffit pas pour compter quelque chose, il faut les deux. Je pense qu'il s'agit d'un faux, à moins que le concours ait duré jusqu'au 18 décembre, date à laquelle cette position aurait pu être clôturée avec un profit de 630 pips. Mais avant cela, il aurait été obligé de subir un drawdown d'environ -830 pips (pour 4zn), pas très malin, la stratégie est un tel guano lamentable....


Je l'aurais perdu sur le compte réel, il fonctionne sur une démo quand j'ai beaucoup d'argent virtuel ;)))

 

evillive, bonjour, merci de me mettre dans la bonne direction ! !!



r772ra, bonjour, merci d'avoir expliqué l'erreur en exposant le code corrigé (je considère que c'est la meilleure façon d'apprendre (pratique (-Faites la théorie, mon ami, et l'arbre de vie est toujours vert.-)).