Spread trading in Meta Trader - pagina 159

 

Grazie per le informazioni.

Ecco quello che non riesco a capire. Se uso la data ottenuta con MarketInfo(),

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

Come impostare una condizione per vietare l'apertura di posizioni in 3 settimane? E di conseguenza, se ho capito bene, sarebbe ragionevole chiudere le posizioni esistenti. Questa è la data di scadenza, e più si avvicina, più alto è il rischio di forza maggiore.

 
leonid553:

Ecco uno script che tiene traccia dello spread bid-ask (in particolare per il brokeraggio).

Da qualche parte sopra, a metà del thread, c'è la stessa versione, ma come indicatore.

Il mio script consuma una risorsa significativa della CPU (-schedule), quindi è meglio metterlo appena prima di aprire/chiudere, e poi rimuoverlo subito.

6NZ0, M1

Che ne dici di usare l'esempio di goldtrader con il codice del tuo script

    //Задаем цены аск и бид тикера
    Ask_Tiker = MarketInfo(_tiker,MODE_ASK);
    Bid_Tiker = MarketInfo(_tiker,MODE_BID);
Come un filtro in un EA. E non hai bisogno di un copione.
 
Vitya:

Grazie per le informazioni.

Ecco quello che non riesco a capire. Se uso la data ottenuta con MarketInfo(),

Come impostare una condizione per vietare l'apertura di posizioni in 3 settimane? E di conseguenza, se ho capito bene, sarebbe ragionevole chiudere le posizioni esistenti. Questa è la data di scadenza, e più si avvicina, più alto è il rischio di forza maggiore.

è possibile fare una conclusione di allerta sull'avvicinarsi della scadenza, e nell'Expert Advisor è necessario controllare ogni trade rispetto allo spread massimo consentito
 
Vitya:

E se usi la costruzione suggerita da goldtrader con il codice del tuo script

Lo stesso del filtro nell'Expert Advisor. E lo script non è necessario.


Beh, questo è ovvio! Lo script è necessario solo per il trading manuale.

Puoi anche inserire le condizioni di chiusura/apertura per ticker nel tuo Expert Advisor. Tuttavia, c'è una difficoltà. L'EA dovrà andare in loop nel suo lavoro (e quindi - carico eccessivo sul processore), altrimenti questo filtro sarà assolutamente inutile per i contratti a bassa liquidità.

 

Buon pomeriggio, la mia domanda è proprio sul punto.

L'indicatore di spread nelle sue PROPRIETÀ permette di impostare i nomi degli strumenti.

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

Come faccio a scrivere

doppio iCustom(

simbolo stringa, int timeframe,

- Quale strumento dovrei selezionare - il primo o il secondo? O qualcuno di loro?



 
Rita:


non c'è modo di applicarlo qui

È necessario incorporare il codice nell'Expert Advisor e specificare la condizione lì

//----
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))
{



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




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

 
Capisco, grazie.
 
forex-k:

non c'è modo di applicarlo qui

È necessario incorporare il codice nell'Expert Advisor e specificare la condizione lì

//----
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))
{



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




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



Grazie ancora. Risponde anche alle mie domande.
 

Informazioni per la riflessione...

MC - YM (4 ^ 9)

 
leonid553:

Informazioni per la riflessione...

MC - YM (4 ^ 9)


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