Comment coder ? - page 43

 
jimven:
Flytox : Je ne trouve pas ce code dans ma copie de TrendStrength.

C'est TrendStrength v2.2

 

Mode de prix personnalisé

Quelqu'un sait-il comment créer un mode de prix personnalisé ? J'utilise l'alerte suivante pour signaler quand le prix (extern int PriceMode = 6 ; //(high+low+close+close)/4) traverse une MA. J'aimerais personnaliser cette alerte en ajoutant un décalage, disons de 1 ou 2 %. Est-ce possible ? Quelque chose comme :

extern int PriceMode = ((high+low+close+close)/4) * 1.01

----------------------------------------------------

#propriété indicator_chart_window

extern int MA1.period =5 ; //Période 5

extern int MA1.shift=0 ;

extern int MA1.method=2 ; //SMMA

extern int lMA1.price=2 ; //MA fixée au sommet de la bougie

extern int sMA1.price=3 ; //MA fixée au niveau le plus bas de la bougie

extern int PriceMode = 6 ; //(high+low+close+close)/4

int cBar,pBarLong,pBarShort ;

int start()

{

cBar = Time[0] ;

if(CheckMACross(1)== 1 && cBar!=pBarLong ) {EmailAlert(1) ; pBarLong=cBar;}

sinon

if(CheckMACross(2)==-1 && cBar!=pBarShort) {EmailAlert(2) ; pBarShort=cBar;}

return(0) ;

}

int CheckMACross(int mode)

{

if(mode==1) int price = lMA1.price ;

sinon

if(mode==2) price = sMA1.price ;

double price1 = iMA(Symbol(),0,1,0,1,PriceMode,1) ;

double ma1 = iMA(Symbole(),0,MA1.period,MA1.shift,MA1.method, price,1) ;

double price0 = iMA(Symbol(),0,1,0,1,PriceMode,0) ;

double ma0 = iMA(Symbole(),0,MA1.period,MA1.shift,MA1.method, price,0) ;

if(ma1 > prix1 && ma0 <= prix0) return( 1) ;

sinon

si ma1 = prix0) return( -1) ;

sinon

return(0) ;

}

{

if(mode == 1) SendMail("Signal for LONG",Symbol()+" Go Long") ; //SendMail

sinon

if(mode == 2) SendMail("Signal for SHORT",Symbol()+" Go Short");//SendMail

}

int lastBAlert = 0 ;

int lastSAlert = 0 ;

void EmailAlert(int mode)

{

if(mode == 2 && lastSAlert < Time[0] )

{

SendMail("Go Short 1",Symbol()+" Go Short 1") ; //SendMail

lastSAlert = Time[0] ;

}

}

 
vonokpasah:
Je lance un appel aux experts pour qu'ils viennent à mon aide, j'en ai besoin pour m'aider à construire un EXPERT ADVISER META 4 TRADER pour moi, je serais très reconnaissant si ma demande est accordée.

Des millions de façons de construire un expert, de quelle façon avez-vous pensé ?

 

Aide sur le code source !

Bonjour à tous

J'ai un EA et je veux ajouter une entrée à celui-ci

Si take profit >= :xx , acheter :xx lot

extern int Deltaopen1 =100 ;

J'ai écrit

si (type == OP_BUY)

{

si (M2.BuyCnt == 0 && OrderTakeProfit() > OrderOpenPrice() + Deltaopen1*point)

{

Buy(Symbol(), GetLots2(), Ask, 0, 0, 0, Magic2) ;

retour ;

}

}

if (type == OP_SELL)

{

si (M2.SellCnt == 0 && OrderTakeProfit() <= OrderOpenPrice() - Deltaopen1*point)

{

Sell(Symbol(), GetLots2(), Bid, 0, 0, 0, Magic2) ;

retour ;

}

}

}

Mais cela ne fonctionne pas,

J'apprécie toute aide.

Merci.

 

Besoin d'un peu d'aide pour affiner cette EA

J'ai cet EA qui est une version modifiée du "GAPS EA" trouvé ailleurs sur ce forum.

Vous trouverez ci-joint une copie du code.

#property link ""

//---- input parameters

extern int min_gapsize = 1;

extern double lotsize_gap = 5;

extern int MagicNumber = 10;

//----

datetime order_time = 0;

//+------------------------------------------------------------------+

//| expert initialization function |

//+------------------------------------------------------------------+

int init()

{

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start()

{

/*

Thing to be done in future in this program to make it more efficient

and more powerful:

1. Make the dicission of the quantity of lots used according to

the scillators;

2. This program will catch the gaps.

Things to ware of:

1. the spread;

2. excuting the order not on the gap ends a little bit less.

*/

// Defining the variables to decide.

Print("order time", order_time);

double current_openprice = iOpen(Symbol(), 0, 0);

double previous_highprice = iHigh(Symbol(), 0, 1);

double previous_lowprice = iLow(Symbol(), 0, 1);

double point_gap = MarketInfo(Symbol(), MODE_POINT);

int spread_gap = MarketInfo(Symbol(), MODE_SPREAD)+1;

datetime current_time = iTime(Symbol(), 0, 0);

// catching the gap on sell upper gap

if(current_openprice > previous_highprice + (min_gapsize + spread_gap)*point_gap &&

current_time != order_time)

{

int ticket = OrderSend(Symbol(), OP_SELL, lotsize_gap, Bid, 0, 0,

previous_highprice + spread_gap,

"Gapped Up Sell " + Symbol()+ " " +Period()+ "", MagicNumber, 0, Red);

order_time = iTime(Symbol(), 0, 0);

Print("I am inside (sell) :-)", order_time);

//----

if(ticket < 0)

{

Print("OrderSend failed with error #", GetLastError());

}

}

//catching the gap on buy down gap

if(current_openprice < previous_lowprice - (min_gapsize + spread_gap)*point_gap &&

current_time != order_time)

{

ticket = OrderSend(Symbol(), OP_BUY, lotsize_gap, Ask, 0, 0,

previous_lowprice - spread_gap,

"Gapped Down Buy " + Symbol()+ " " +Period()+ "", MagicNumber, 0, Green);

order_time = iTime(Symbol(), 0, 0);

Print("I am inside (buy) :-)", order_time);

if(ticket < 0)

{

Print("OrderSend failed with error #", GetLastError());

}

}

//----

return(0);

}

//+------------------------------------------------------------------+

Chaque fois que je le place dans le testeur de stratégie, il n'ouvre pas de transactions. Un rapide coup d'œil au journal m'indique qu'il y a eu beaucoup d'ordres passés. Qu'est-ce que j'ai fait de mal ?

 

Aide : Question de base sur les histogrammes

C'est probablement très facile et je suis en train d'oublier quelque chose, mais je suis à court de ressources et je ne trouve pas de réponse.

Tout ce que j'essaie de faire, c'est de rappeler la valeur de la barre d'histogramme précédemment dessinée.

Des idées ?

Par exemple, Close[1] indique la dernière barre fermée sur le graphique......

Alors qu'est-ce qui pourrait montrer la dernière barre d'histogramme dessinée sur cet indicateur à fenêtre séparée ?

Merci d'avance pour tout conseil.

-dharsant

 
dharsant:
C'est probablement très facile et je suis en train d'oublier quelque chose, mais je suis à court de ressources et je ne trouve pas de réponse.

Tout ce que j'essaie de faire, c'est de rappeler la valeur de la barre d'histogramme précédemment dessinée.

Avez-vous une idée ?

Par exemple, Close[1] indique la dernière barre fermée sur le graphique......

Alors qu'est-ce qui pourrait montrer la dernière barre d'histogramme dessinée sur cet indicateur à fenêtre séparée ?

Merci d'avance pour tout conseil.

-dharsant

Quel indicateur appelez-vous ? Il suffit de définir le décalage pour appeler la barre précédente.

Exemple, pour une moyenne mobile de la barre courante :

iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,0) ;

Pour une moyenne mobile de la barre précédente :

iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,1) ;

Le dernier paramètre lors de l'appel d'un indicateur signifie combien de barres à partir de la barre actuelle seront lues.

J'espère que c'est ce que vous recherchiez.

 

Besoin d'aide pour le codage, s'il vous plaît

J'essaie d'utiliser quelques indicateurs différents dans un ea mais je n'arrive pas à trouver comment les implémenter dans le système. Quelle partie de l'indicateur dois-je utiliser pour dire acheter ou vendre. Comment puis-je intégrer la ligne de direction de la pente dans une partie de l'EA ?

Merci

Beno

Dossiers :
 

Je ne me suis probablement pas bien expliqué.

J'essaie de trouver ce que je dois mettre dans iCustom, c'est ce que j'ai fait ci-dessous.

double SDL=iCustom(NULL,0, "Slope Direction Line",period,method,price)

Et ce que je dois faire pour générer des signaux d' achat et de vente à partir de l'indicateur Slope Direction Line pour mon EA. Voici ce que j'ai fait jusqu'à présent, cela compile mais aucune position n'est générée.

bool Long = TML && SDL && HeikenAshiOpen < HeikenAshiClose && hasOpen < hasClose ;

bool Short = TMS && SDL && HeikenAshiOpen > HeikenAshiClose && hasOpen > hasClose ;

Toute aide serait la bienvenue

Cheers

Beno

 

Tout d'abord, l'appel iCustom a besoin de deux arguments supplémentaires à la fin, à savoir à partir de quel tampon d'indicateur lire, et à partir de quel index lire.

Deuxièmement, "SDL" est un nombre double, donc mettre simplement "SDL" comme condition montre une certaine confusion ; peut-être que cela compile comme "SDL != 0", et peut-être que c'est ce que cela signifie.