[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 465

 
extralifes :

Kodu çözmeme yardım et. Durumu doğru bir şekilde nasıl tarif edeceğimi bilmiyorum.

İşte danışmanın bir parçası.

if(total<1)

{

while (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2) //Пока это условие выполняется открывать только селл при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)<0.7)) -какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_SELL, lots, NormalizeDouble(Bid, Digits), 3, /*Ask+10*Point*/0, /*Bid-10*Point*/0, "ADX sell", magic, 0, CLR_NONE);
}

while (d_pl_1>d_mn_1 && (d_pl_0-d_mn_0)>=2) // Пока это условие выполняется открывать только Бай при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)<0.3)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)>0.3)) - какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_BUY, lots, NormalizeDouble(Ask, Digits), 3, /*Bid-10*Point*/0, /*Ask+10*Point*/0, "ADX buy", magic, 0, CLR_NONE);

}
}
}
}
Biraz çit...
 
butthead :

Psikolojik faktörün beni rahatsız ettiğini anlıyorum... Açgözlülük.. 300 r. bile kaybetme korkusu.. Ne yapayım?... Unutun gerçek hesap?..


Yönü değiştirirseniz ne olur? "Kazanmak için çabalamak" değil, "kaybetmemek için çabalamak".
 

Anlamama yardım et!

Fikrin özü: iMACD büyürken - düşmeye başlar başlamaz AL'ı basılı tutun - AL'ı kapatın ve SATIN'ı açın. Karşılaştırma, mevcut değer hariç son üç değere dayanmaktadır.

Kod sorunu: Anladığım kadarıyla iMACD değerleri +-0 olan çok sayıda sipariş açılıyor. Normalizedouble() yardımcı olmuyor.

İşte kod:

 int start()
  {

double MA1= iMACD ( NULL , 0 , 5 , 34 , 1 , PRICE_CLOSE , MODE_MAIN, 1 ), 
       MA2= iMACD ( NULL , 0 , 5 , 34 , 1 , PRICE_CLOSE , MODE_MAIN, 2 ),
       MA3= iMACD ( NULL , 0 , 5 , 34 , 1 , PRICE_CLOSE , MODE_MAIN, 3 );
       
       
       
if (MA1>MA2>MA3 && Napr== 1 )
    {Closeall();
    Napr= 0 ;
     OrderSend ( Symbol (), OP_BUY, Lot, Ask, 5 , 0 , 0 );}

if (MA1<MA2<MA3 && Napr== 0 )
    {Closeall();
    Napr= 1 ;
     OrderSend ( Symbol (), OP_SELL, Lot, Bid, 5 , 0 , 0 );}



   return ( 0 );
  }
 
extralifes :

Kodu çözmeme yardım et. Durumu doğru bir şekilde nasıl tarif edeceğimi bilmiyorum.

İşte danışmanın bir parçası.


total=OrdersTotal();

if(total<1)

{

while (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2) //Пока это условие выполняется открывать только селл при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)<0.7)) -какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_SELL, lots, NormalizeDouble(Bid, Digits), 3, /*Ask+10*Point*/0, /*Bid-10*Point*/0, "ADX sell", magic, 0, CLR_NONE);
}

while (d_pl_1>d_mn_1 && (d_pl_0-d_mn_0)>=2) // Пока это условие выполняется открывать только Бай при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)<0.3)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)>0.3)) - какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_BUY, lots, NormalizeDouble(Ask, Digits), 3, /*Bid-10*Point*/0, /*Ask+10*Point*/0, "ADX buy", magic, 0, CLR_NONE);

}
}
}
}
Nasıl doğru bir şekilde düzenleneceğini söyle?


Yani çalışmıyor, değil mi?

total= OrdersTotal ();
if (total< 1 )

{

   if (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>= 2 && iRSI ( NULL , 0 ,rsi_period, PRICE_CLOSE , 2 )> 0.7 &&   iRSI ( NULL , 0 ,rsi_period, PRICE_CLOSE , 0 < 0.7 )
         OrderSend ( Symbol (), OP_SELL, lots, NormalizeDouble (Bid, Digits ), 3 , /*Ask+10*Point*/ 0 , /*Bid-10*Point*/ 0 , "ADX sell" , magic, 0 , CLR_NONE );
   

   if (d_pl_1>d_mn_1 && (d_pl_0-d_mn_0)>= 2 && iRSI ( NULL , 0 ,rsi_period, PRICE_CLOSE , 2 )< 0.3 && iRSI ( NULL , 0 ,rsi_period, PRICE_CLOSE , 0 ) > 0.3 ) 
       OrderSend ( Symbol (), OP_BUY, lots, NormalizeDouble (Ask, Digits ), 3 , /*Bid-10*Point*/ 0 , /*Ask+10*Point*/ 0 , "ADX buy" , magic, 0 , CLR_NONE );

  }
 

işe yaramazsa hayır.

Dolayısıyla, (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2 koşulu doğru olsa da, iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7 && iRSI(NULL,0,rsi_period , PRICE_CLOSE,0<0.7)

Aynı şekilde tam tersi.

Bunu bir şekilde while veya bool kullanarak yapmak mümkün mü? Programlamada tam bir vinç. Mantıksal zinciri anlıyorum ama elleri koda çevirmek çarpık.

 
extralifes :

işe yaramazsa hayır.

Bu nedenle, (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2 koşulu doğruyken, yalnızca iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7 && iRSI(NULL,0) şartıyla açık satış emirleri açmak gerekir. ,rsi_period ,PRICE_CLOSE,0<0.7)

Aynı şekilde tam tersi.

Bunu bir şekilde while veya bool kullanarak yapmak mümkün mü? Programlamada tam bir vinç. Mantıksal zinciri anlıyorum ama elleri koda çevirmek çarpık.

para bitene kadar aç? veya bar başına 1 kez açık mı? veya kene başına 1 kez mi?
 

Merhaba! StopOut'a (ve bazen) ulaşmak istemiyorum. Partiyi, en kötü koşullarda StopOut'u "yakalamayacak" bir değerle sınırlamaya karar verdim. Uzun zamandır deneme yanılma ile uğraşıyorum. Belki birinin bir çözümü vardır?

İlk veri:

- döviz çifti - mutlaka EURUSD değil

- fiyat (alış/satış fiyatı)

- puan olarak belirtilen StopLoss (En kötü koşulların StopLoss seviyesine ulaşıldığında bile StopOut'u yakalamamak olduğu varsayılır)

- partinin set değeri

- MT4 fonksiyonlarını kullanarak diğer değerleri çıkarın: 1 lot büyüklüğü, kaldıraç, çapraz oran

Bir kod istiyorum.

Teorik olarak, gerekli olduğunu anlıyorum: StopLoss seviyesindeki bakiye eksi olası kaybı marj ile bölün. Ve bu değer StopOut'tan (yüzde olarak) büyük olmalıdır.

 
Cmu4 :

Anlamama yardım et!

Fikrin özü: iMACD büyürken - düşmeye başlar başlamaz AL'ı basılı tutun - AL'ı kapatın ve SATIN'ı açın. Karşılaştırma, mevcut değer hariç son üç değere dayanmaktadır.

Kod sorunu: Anladığım kadarıyla iMACD değerleri +-0 olan çok sayıda sipariş açılıyor. Normalizedouble() yardımcı olmuyor.

İşte kod:


 int start()
  {

double MA1= iMACD ( NULL , 0 , 5 , 34 , 1 , PRICE_CLOSE , MODE_MAIN, 1 ), 
       MA2= iMACD ( NULL , 0 , 5 , 34 , 1 , PRICE_CLOSE , MODE_MAIN, 2 ),
       MA3= iMACD ( NULL , 0 , 5 , 34 , 1 , PRICE_CLOSE , MODE_MAIN, 3 );
       
       
       
if (MA1>MA2 && MA2>MA3 && Napr== 1 )
    {Closeall();
    Napr= 0 ;
     OrderSend ( Symbol (), OP_BUY, Lot, Ask, 5 , 0 , 0 );}

if (MA1<MA2 && MA2<MA3 && Napr== 0 )
    {Closeall();
    Napr= 1 ;
     OrderSend ( Symbol (), OP_SELL, Lot, Bid, 5 , 0 , 0 );}



   return ( 0 );
  }
belkide sorun buydu
 
ilunga :
para bitene kadar aç? veya bar başına 1 kez açık mı? veya kene başına 1 kez mi?

Her yeni çubukta durum kontrol edilir. Bu durumda, zaman çerçevesi bir saattir. Bu durum her saat başında kontrol edilir.
 
Vinin :

belkide sorun buydu

Hayır .. Önerdiğiniz gibi yaptım - aynı kalır.

Ayrıca kodu, şartlara göre ayrı ayrı açma ve kapama bloklarına ayırarak değiştirdim. Hepsi bir. Ne yapacağımı bilmiyorum zaten.

İşte fragmandaki test uzmanı danışmanı olan test cihazından bir ekran görüntüsü:

Dosyalar: