Divulgação do comércio no Meta Trader - página 159

 

Obrigado pela informação.

Eis o que eu não consigo entender. Se eu usar data obtida com MarketInfo(),

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

Como estabelecer uma condição para proibir a abertura de vagas em 3 semanas? E, correspondentemente, se eu entendi corretamente, seria razoável fechar as posições existentes. Esta é a data de expiração, e quanto mais próximo dela, maior o risco de força maior.

 
leonid553:

Aqui está um roteiro que rastreia o spread de oferta e procura (especificamente para corretagem).

Em algum lugar acima no meio do fio há a mesma versão, mas como um indicador.

Meu script consome recursos significativos da CPU (-schedule), então é melhor colocá-lo imediatamente antes de abrir/fechar, e depois removê-lo de uma vez.

6NZ0, M1

Que tal usar o exemplo do goldtrader com o código de seu script

    //Задаем цены аск и бид тикера
    Ask_Tiker = MarketInfo(_tiker,MODE_ASK);
    Bid_Tiker = MarketInfo(_tiker,MODE_BID);
Como um filtro em um EA. E você não precisa de um roteiro.
 
Vitya:

Obrigado pela informação.

Eis o que eu não consigo entender. Se eu usar data obtida com MarketInfo(),

Como estabelecer uma condição para proibir a abertura de vagas em 3 semanas? E, correspondentemente, se eu entendi corretamente, seria razoável fechar as posições existentes. Esta é a data de expiração, e quanto mais próximo dela, maior o risco de força maior.

é possível fazer uma conclusão de alerta sobre a aproximação da expiração, e no Expert Advisor é necessário verificar cada comércio em relação ao spread máximo permitido
 
Vitya:

E se você usar a construção que o goldtrader sugeriu com o código de seu script

O mesmo que o filtro no Expert Advisor. E o roteiro não é necessário.


Bem, isso é óbvio! O roteiro só é necessário para o comércio manual.

Você também pode inserir as condições de fechamento/abertura por meio de um ticker em seu Expert Advisor. No entanto, há uma dificuldade. O EA terá que fazer loop em seu trabalho (e portanto - carga excessiva no processador), caso contrário, este filtro será absolutamente inútil para contratos de baixa liquidez.

 

Boa tarde, minha pergunta está no ponto certo.

O indicador de dispersão em suas PROPRIEDADES permite definir os nomes dos instrumentos.

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

Como escrever

duplo iCustom(

símbolo de corda, em tempo hábil,

- Qual ferramenta eu devo selecionar - a primeira ou a segunda? Ou qualquer um deles?



 
Rita:


não há como aplicá-lo aqui

Você precisa incorporar o código no Expert Advisor e especificar a condição 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))
{



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




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

 
Estou vendo, obrigado.
 
forex-k:

não há como aplicá-lo aqui

Você precisa incorporar o código no Expert Advisor e especificar a condição 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))
{



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




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



Mais uma vez, obrigado. Ela também responde às minhas perguntas.
 

Informações para reflexão...

MC - YM (4 ^ 9)

 
leonid553:

Informações para reflexão...

MC - YM (4 ^ 9)


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