Meta Trader'da spread ticareti - sayfa 159

 

Bilgi için teşekkürler.

Anlayamıyorum. MarketInfo() ile elde edilen tarihi kullanırsak,

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

3 hafta boyunca pozisyon açmayı yasaklamak için bir koşul nasıl belirlenir? Peki ve buna göre doğru anladıysam mevcut pozisyonları kapatmak mantıklı. Son kullanma tarihi ile şaka yapmamak daha iyidir ve buna ne kadar yakınsa, DC'ler açısından mücbir sebep riski o kadar yüksek olur.

 
leonid553 :

İşte son teklifin yayılmasını izleyen bir komut dosyası (özellikle DC Broco için).

Dalın ortasında daha yüksek bir yerde aynı versiyon var, ancak bir gösterge şeklinde.

Senaryo beni tüketiyor. işlemci kaynağı (-loop), bu nedenle açmadan / kapatmadan hemen önce koymak ve ardından hemen kaldırmak daha iyidir.

6NZ0 , M1

Ve eğer goldtrader'ın önerdiği yapıyı betiğinizdeki kodla kullanırsanız

    //Задаем цены аск и бид тикера
    Ask_Tiker = MarketInfo(_tiker,MODE_ASK);
    Bid_Tiker = MarketInfo(_tiker,MODE_BID);
EA'daki bir filtre gibi. Ve bir senaryoya ihtiyacınız yok.
 
Vitya :

Bilgi için teşekkürler.

Anlayamıyorum. MarketInfo() ile elde edilen tarihi kullanırsak,

3 hafta boyunca pozisyon açmayı yasaklamak için bir koşul nasıl belirlenir? Peki ve buna göre doğru anladıysam mevcut pozisyonları kapatmak mantıklı. Son kullanma tarihi ile şaka yapmamak daha iyidir ve buna ne kadar yakınsa, DC'lerin mücbir sebep riski o kadar yüksek olur.

yaklaşan sona erme hakkında bir uyarı yapabilir ve danışmanda izin verilen maksimum yayılma ile her anlaşmayı programlı olarak kontrol etmeniz gerekir.
 
Vitya :

Ve eğer goldtrader'ın önerdiği yapıyı betiğinizdeki kodla kullanırsanız

EA'daki bir filtre gibi. Ve bir senaryoya ihtiyacınız yok.


Peki açık! Komut dosyası yalnızca manuel ticaret için gereklidir.

Ayrıca Expert Advisor'a açılış/kapanış koşullarını ticker ile ekleyebilirsiniz. Gerçekten de bir zorluk var. Danışmanın işini döngüye sokmanız (ve dolayısıyla - gereksiz yere işlemciyi yüklemeniz) gerekecek, aksi takdirde bu filtre düşük likit sözleşmelerde kesinlikle işe yaramaz.

 

Tünaydın! Soru tam konuyla ilgili.

ÖZELLİKLERİ'ndeki yayılma göstergesi, aletlerin adlarını ayarlamanıza olanak tanır.

harici dize Symbol_1 = "GCG1";
harici string Symbol_2 = "SIF1";

nasıl yazabilirim o zaman

çift iCustom (

dize sembolü, int zaman çerçevesi,

- hangi araç ayarlanacak - birinci mi yoksa ikinci mi? Ya da bu ikisinden biri?



 
Rita :


icustom burada uygulanamaz

kodu danışmana gömmeniz ve koşulu oraya yazmanız gerekir.

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



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




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

 
anladım, teşekkürler.
 
forex-k :

icustom burada uygulanamaz

kodu danışmana gömmeniz ve koşulu oraya yazmanız gerekir.

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



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




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



Tekrar teşekkürler. İşte sorularımın cevabı.
 

Düşünmek için yemek...

MC - YM (4^9)

 
leonid553 :

Düşünmek için yemek...

MC - YM (4^9)


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