Spread trading dans Meta Trader - page 159

 

Merci pour ces informations.

Voilà ce que je n'arrive pas à comprendre. Si j'utilise la date obtenue avec MarketInfo(),

 int exp1 =MarketInfo(Simbol1,MODE_EXPIRATION);
 int exp2 =MarketInfo(Simbol2,MODE_EXPIRATION);

Comment définir une condition pour interdire l'ouverture de positions en 3 semaines ? Et par conséquent, si je comprends bien, il serait raisonnable de fermer les positions existantes. Il s'agit de la date d'expiration, et plus elle est proche, plus le risque de force majeure est élevé.

 
leonid553:

Voici un script qui suit l'écart entre l'offre et la demande (spécifiquement pour le courtage).

Quelque part au-dessus, au milieu du fil, il y a la même version, mais comme indicateur.

Mon script consomme beaucoup de ressources CPU (-schedule), il est donc préférable de le mettre juste avant l'ouverture/la fermeture, puis de le supprimer d'un coup.

6NZ0, M1

Que diriez-vous d'utiliser l'exemple de goldtrader avec le code de votre script

    //Задаем цены аск и бид тикера
    Ask_Tiker = MarketInfo(_tiker,MODE_ASK);
    Bid_Tiker = MarketInfo(_tiker,MODE_BID);
Comme un filtre dans un EA. Et vous n'avez pas besoin d'un script.
 
Vitya:

Merci pour ces informations.

Voilà ce que je n'arrive pas à comprendre. Si j'utilise la date obtenue avec MarketInfo(),

Comment définir une condition pour interdire l'ouverture de positions en 3 semaines ? Et par conséquent, si je comprends bien, il serait raisonnable de fermer les positions existantes. Il s'agit de la date d'expiration, et plus elle est proche, plus le risque de force majeure est élevé.

il est possible d'émettre une conclusion d'alerte sur l'approche de l'expiration, et dans le conseiller expert, il est nécessaire de vérifier chaque transaction par rapport à l'écart maximal autorisé.
 
Vitya:

Et si vous utilisez la construction que goldtrader a suggéré avec le code de votre script

Le même que le filtre dans le conseiller expert. Et le script n'est pas nécessaire.


Eh bien, c'est évident ! Le script n'est nécessaire que pour le trading manuel.

Vous pouvez également insérer les conditions de clôture/ouverture par ticker dans votre EA. Cependant, il y a là une difficulté. L'EA devra tourner en boucle dans son travail (et donc - charge excessive sur le processeur), sinon ce filtre sera absolument inutile pour les contrats à faible liquidité.

 

Bonjour, ma question est tout à fait dans le sujet.

L'indicateur de spread dans ses PROPRIÉTÉS permet de définir les noms des instruments.

extern string Symbol_1 = "GCG1" ;
extern string Symbol_2 = "SIF1" ;

Comment puis-je écrire

double iCustom(

string symbol, int timeframe,

- Quel outil dois-je choisir - le premier ou le second ? Ou l'un d'entre eux ?



 
Rita:


il n'y a aucun moyen de l'appliquer ici

Vous devez intégrer le code dans le conseiller expert et y spécifier la condition.

//----
extern string Simbol1 = "ESZ0"; extern double k1 =1;
extern string Simbol2 = "NQZ0"; extern double k2 =1;
extern double lot =1;
//----
extern double maxSpred =30;
extern int MinTimeExp =1800000;

int exp1,exp2,v1,v2;
//+------------------------------------------------------------------+
double StoimPunkt(string B){return(MarketInfo(B,MODE_TICKVALUE)/(MarketInfo(B,MODE_TICKSIZE)/MarketInfo(B,MODE_POINT)));}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
double sred(int typ,string B)
{double j;RefreshRates();
if(typ==0)j=((MarketInfo(B+"#I",MODE_ASK)-MarketInfo(B,MODE_BID))/MarketInfo(B,MODE_POINT))*StoimPunkt(B);
if(typ==1)j=((MarketInfo(B,MODE_BID)-MarketInfo(B+"#I",MODE_BID))/MarketInfo(B,MODE_POINT))*StoimPunkt(B);
if(j<0)j=0;return(j);}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
int start()
{
exp1 =MarketInfo(Simbol1,MODE_EXPIRATION);
exp2 =MarketInfo(Simbol2,MODE_EXPIRATION);
v1 =MarketInfo(Simbol1,MODE_TRADEALLOWED);
v2 =MarketInfo(Simbol2,MODE_TRADEALLOWED);

if((sred(0,Simbol1)*lot*k1+sred(1,Simbol1)*lot*k1<maxSpred)&&(sred(0,Simbol2)*lot*k2+sred(1,Simbol2)*lot*k2<maxSpred)&&
(TimeCurrent()+MinTimeExp<exp1)&&(TimeCurrent()+MinTimeExp<exp2)&&(v1 ==1)&&(v2 ==1))
{



код советника




}
}
//+------------------------------------------------------------------+

 
Je vois, merci.
 
forex-k:

il n'y a aucun moyen de l'appliquer ici

Vous devez intégrer le code dans le conseiller expert et y spécifier la condition.

//----
extern string Simbol1 = "ESZ0"; extern double k1 =1;
extern string Simbol2 = "NQZ0"; extern double k2 =1;
extern double lot =1;
//----
extern double maxSpred =30;
extern int MinTimeExp =1800000;

int exp1,exp2,v1,v2;
//+------------------------------------------------------------------+
double StoimPunkt(string B){return(MarketInfo(B,MODE_TICKVALUE)/(MarketInfo(B,MODE_TICKSIZE)/MarketInfo(B,MODE_POINT)));}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
double sred(int typ,string B)
{double j;RefreshRates();
if(typ==0)j=((MarketInfo(B+"#I",MODE_ASK)-MarketInfo(B,MODE_BID))/MarketInfo(B,MODE_POINT))*StoimPunkt(B);
if(typ==1)j=((MarketInfo(B,MODE_BID)-MarketInfo(B+"#I",MODE_BID))/MarketInfo(B,MODE_POINT))*StoimPunkt(B);
if(j<0)j}0;return(j);}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
int start()
{
exp1 =MarketInfo(Simbol1,MODE_EXPIRATION);
exp2 =MarketInfo(Simbol2,MODE_EXPIRATION);
v1 =MarketInfo(Simbol1,MODE_TRADEALLOWED);
v2 =MarketInfo(Simbol2,MODE_TRADEALLOWED);

if((sred(0,Simbol1)*lot*k1+sred(1,Simbol1)*lot*k1<maxSpred)&&(sred(0,Simbol2)*lot*k2+sred(1,Simbol2)*lot*k2<maxSpred)&&
(TimeCurrent()+MinTimeExp<exp1)&&(TimeCurrent()+MinTimeExp<exp2)&&(v1 ==1)&&(v2 ==1))
{



код советника




}
}
//+------------------------------------------------------------------+



Merci encore. Il répond également à mes questions.
 

Des informations pour la réflexion...

MC - YM (4 ^ 9)

 
leonid553:

Des informations pour la réflexion...

MC - YM (4 ^ 9)


=================================