Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1063

 
mould :
bu mod nasıl etkinleştirilir?

Sol alttaki test penceresindeki onay kutusu işaretlenmelidir:

 

Merhaba sevgili gurular.

Söyle bana, doğru yolda mıyım?

Amaç: MA'dan uzaklığa bağlı olarak değişken bir parti büyüklüğü tanıtmak.

Giriş parametrelerinde:

harici çift Lot1 = 0.01; // ilk parti seçeneği
harici çift Lot2 = 0.03; // ikinci parti seçeneği
dış int Uzak = 20; // SlowMA'dan uzaklık

Ma, uzmanın vücudunda teşhis edildi:

double SlowMA = iMA(NULL,60, periodSlowMA ,0,MODE_EMA,PRICE_MEDIAN,0);

Daha sonra, bir koşula ihtiyacımız var: gerçek fiyat (yöne bağlı olarak Teklif veya Talep) Uzak büyüklüğe kadar ise, o zaman ilk parti büyüklüğünü, daha fazlaysa ikincisini kullanırız.

Aklıma gelen ilk şey:

if (Ask-SlowMA<Distan) Lot == Lot1;
if (SlowMA-Bid<Distan) Lot == Lot1;
if (SlowMA>Uzak Sor) Lot == Lot2;
if (SlowMA-Bid>Distan) Lot == Lot2;

Ama çalışmıyor. Hata ya Lot ile bağlantılıdır ya da genel mantıktadır.

Şimdiden teşekkürler.

 
delf699 :

Merhaba sevgili gurular.

Söyle bana, doğru yolda mıyım?

Amaç: MA'dan uzaklığa bağlı olarak değişken bir parti büyüklüğü tanıtmak.

Giriş parametrelerinde:

harici çift Lot1 = 0.01; // ilk parti seçeneği
harici çift Lot2 = 0.03; // ikinci parti seçeneği
dış int Uzak = 20; // SlowMA'dan uzaklık

Ma, uzmanın vücudunda teşhis edildi:

double SlowMA = iMA(NULL,60,periodSlowMA,0,MODE_EMA,PRICE_MEDIAN,0);

Ardından, bir koşula ihtiyacımız var: gerçek fiyat (yöne bağlı olarak Teklif veya Talep) Uzak boyuta kadar ise, o zaman ilk lot büyüklüğünü, daha fazlaysa ikincisini kullanırız.

Aklıma gelen ilk şey:

if (Ask-SlowMA<Distan) Lot == Lot1;
if (SlowMA-Bid<Distan) Lot == Lot1;
if (SlowMA>Uzak Sor) Lot == Lot2;
if (SlowMA-Bid>Distan) Lot == Lot2;

Ama çalışmıyor. Hata ya Lot ile bağlantılıdır ya da genel mantıktadır.

Şimdiden teşekkürler.

Ve Ask-SlowMA, Distan'dan daha büyük olabileceği zaman, Ask, Bid ve SlowMA'nın ne önemi var???
 

Alış ve Satış bilinen son alış ve satış fiyatlarıdır, yani mevcut fiyat.

SlowMA benim yeniden adlandırılan Ma'm

(çift YavaşMA = iMA(NULL,60,periodSlowMA,0,MODE_EMA,PRICE_MEDIAN,0);)

Mevcut fiyatın (Bid veya Ask) salınımdan (SlowMA) sapması, Uzaklardan daha fazla veya daha az olabilir. Buna göre ya birinci ya da ikinci parti büyüklüğünü ayarlamalısınız.

Mevduattan veya açık sipariş sayısından lotu değiştirmek için seçenekler buldum, ancak böyle bir doğrusal göstergeden, herhangi bir şekilde.

Bir şey bana mutlak bir değer döndüren başka bir işleve ihtiyacımız olduğunu söylüyor. Yani, negatif bir sayıya uygulayarak, sonuç olarak pozitif bir sayı elde ederiz.

 
delf699 :

Alış ve Satış bilinen son alış ve satış fiyatlarıdır, yani mevcut fiyat.

SlowMA benim yeniden adlandırılan Ma'm

(çift YavaşMA = iMA(NULL,60,periodSlowMA,0,MODE_EMA,PRICE_MEDIAN,0);)

Mevcut fiyatın (Bid veya Ask) salınımdan (SlowMA) sapması, Uzaklardan daha fazla veya daha az olabilir. Buna göre ya birinci ya da ikinci parti büyüklüğünü ayarlamalısınız.

Mevduattan veya açık sipariş sayısından lotu değiştirmek için seçenekler buldum, ancak böyle bir doğrusal göstergeden, herhangi bir şekilde.

Bir şey bana mutlak bir değer döndüren başka bir işleve ihtiyacımız olduğunu söylüyor. Yani, negatif bir sayıya uygulayarak, sonuç olarak pozitif bir sayı elde ederiz.


Bid ve MA değerleri arasındaki farkın mutlak değerine biraz sonra ihtiyaç duyulabilir ama şimdi ipucunu anlamadığınız için birlikte sayıyoruz

Teklif = 1.12730;

MA = 1.12530;

mesafe = 20;

Soru:

1.1273 - 1.1253 ne zaman 20'den büyük olacak???

Nedense hesap makinem toplamda 0,002 gösteriyor. Ama 20'den çok uzak...

 

Teşekkürler, anladım. Ve şu şekilde mümkündür:

dist=Distan* Noktası ;

if (Ask-SlowMA<dist) Lot == Lot1;
if (SlowMA-Bid<dist) Lot == Lot1;
if (SlowMA>dist sor) Lot == Lot2;
if (SlowMA-Bid>dist) Lot == Lot2;

Ve nasıl doğru bir şekilde uygulamak için hepsi aynı?

 
delf699 :

Teşekkürler, anladım. Ve şu şekilde mümkündür:

dist=Distan* Noktası ;

if (Ask-SlowMA<dist) Lot == Lot1;
if (SlowMA-Bid<dist) Lot == Lot1;
if (SlowMA>dist sor) Lot == Lot2;
if (SlowMA-Bid>dist) Lot == Lot2;

Ve nasıl doğru bir şekilde uygulamak için hepsi aynı?

Ve şimdi , neyin neyden çıkarılacağına dair gereksiz takiplerle kafanızı rahatsız etmemek için MathAbs () uygulayabilirsiniz. Ve bir başka ilginç koşullu operatör

Lot = MathAbs (Ask-SlowMA) < dist ? Lot1 : Lot2;


Bunun anlamı: Ask-SlowMA dist'den küçükse Lot değişkenine Lot1 değişkeninin değeri atanacaktır, aksi takdirde Lot2 değeri atanacaktır.

Ve bir tavsiye daha: Point değişkenini unutun. _Point veya Point() işlevini kullanın

 
Teşekkürler, güzel çözüm.
 
Arkadaşlar şimdiden gözüm kırıldı parantezlerin nerede olduğunu bulamıyorum '(' - dengesiz sol parantez test.mq4 31 8 (TrendDetection()'ın çağrıldığı satırdan başlayarak) gibi hatalar veriyor.

Lütfen yardım edin, ben hala öğreniyorum...


#define BULL 1;
#define BEAR 2;

//------------------------------------------------ --------------------
harici int SL = 200;
harici int TP = 200;
dış çift Lot = 0,01;
harici çift SarStep = 0.02;
harici çift SarMaksimum = 0,2;
dış int kayma = 5;
harici int Sihir = 1;
harici int MaksOrder = 1;
string OrderComments = "Tüccar 1.0";
int Cnt=0;
tarihsaat ÖncekiBar;

int başlangıç()
{
Cnt=SiparişToplam();
{
if (Cnt<MaxOrder)
{
if(NewBar() == doğru)
{
if(TrendDetection() == BOĞA){
OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),slippage,NormalizeDouble(Ask,Digits)-(SL*Point),NormalizeDouble(Ask,Digits)+(TP*Point),OrderComments,Magic,0 , CLR_NONE );}
if(TrendDetection() == AYI){
OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),slippage,NormalizeDouble(Bid,Digits)+(SL*Point),NormalizeDouble(Bid,Digits)-(TP*Point),OrderComments,Magic,0 ,CLR_NONE);}
}
}
başka
{dönüş(0);}
}
dönüş(0);
}

int TrendDetection()
{
double Sar = iSAR(NULL,0,SarStep,SarMaximum,1);
if(Close[1] > Sar) {return(BULL);}
if(Close[1] < Sar) {return(BEAR);}
dönüş (0);}
bool NewBar()
{
if(ÖncekiÇubuk<Zaman[0])
{
ÖncekiÇubuk = Zaman[0];
dönüş(doğru);
}
başka
{
dönüş(yanlış);
}
dönüş(yanlış);
}
 
AlexeyVik :

Ve şimdi , neyin neyden çıkarılacağına dair gereksiz takiplerle kafanızı rahatsız etmemek için MathAbs () uygulayabilirsiniz. Ve bir başka ilginç koşullu operatör


Bunun anlamı: Ask-SlowMA dist'den küçükse Lot değişkenine Lot1 değişkeninin değeri atanacaktır, aksi takdirde Lot2 değeri atanacaktır.

Ve bir tavsiye daha: Point değişkenini unutun. _Point veya Point() işlevini kullanın

Peki ya Point , her şey çalışıyor gibi görünüyor?