[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 403

 
mersi :
hikayeyi yükle ve soru kaybolacak

Nasıl indirilir?
 
kolyango :

Doğru şekilde anladım:

Spesifik uygulama, koşullarınıza çok yakından bağlıdır.

Bayrak sadece durumu tutan bir değişkendir. Kabaca söylemek gerekirse, yükseltilebilir veya alçaltılabilir. Bundan başlayın ve kendi mantığınızı uygulayın.

 
w_ersoc :

Uzmanın belirtilen zaman diliminde yeni bir çubuğun açılmasıyla 1 kez çalışması için koşulu nasıl doğru yazacağımı söyle? :(

Genellikle şu şekilde kullanılan farklı seçenekler bulabilirsiniz:

 int start()
static datetime dtBar;
//.................
if (Time[ 0 ]==dtBar) return ( 0 ); //…проверим открытие новой свечи
dtBar=Time[ 0 ]; //(тот же Бар-возврат)(новый-продолжение...)
//  
 
splxgf :

Spesifik uygulama, koşullarınıza çok yakından bağlıdır.

Bayrak sadece durumu tutan bir değişkendir. Kabaca söylemek gerekirse, yükseltilebilir veya alçaltılabilir. Bundan başlayın ve kendi mantığınızı uygulayın.


Peki, anlamını doğru tanımlamış mıyım?

Doğru şekilde anladım:

1. koşul1 karşılanırsa, o zaman Flag_USSR1 bayrağına gerçek bir değer atanır ve hemen ardından koşul2'yi kontrol etmeye başlarız.

2. koşul2 karşılanırsa, o zaman Flag_USSR2 bayrağına gerçek bir değer atanır ve değilse, bir sonraki tikte yanlış bir değer atanır

artık koşul1'i kontrol etmiyoruz, ancak koşul2 karşılanana ve gerçek bir değer atanana kadar doğrudan koşul2'ye gidiyoruz.

3. Sonra, durum3 ve Bayrak_SSCB2'yi kontrol ederiz (ve SSCB2'de tam olarak neyi doğru veya yanlışı kontrol ederiz; ya da neyi?)

Peki doğru olacak mı? Test cihazında birden fazla anlaşma var... Olsa da, eğer doğruysa. Yanlış olan ne...?

 static bool Val_max, Cl_dn, Val_min; //static or global
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   int
   i, j, total,
   cnt,
   OrderBuy,
   OrderSell,
   Magic,
   Ticket,                                       // Номер ордера
   Total= 0 ,                                     // Количество ордеров в окне
   Tip=- 1 ;                                       // Тип выбран. ордера (B=0,S=1)      
   double
   Open_0,
   ask,
   bid,
   Price,                                       // Цена выбранного ордера
   SL,                                           // SL выбранного ордера
   TP,                                           // TP выбранного ордера
   Lot;                                         // Колич. лотов в выбран.ордере
   Open_0=Open[ 0 ];                             // Цена откр. формирующегося бара
   ask=Ask;                                     // Текущая цена покупки
   bid=Bid;                                     // Текущая цена продажи
   string
   Symb;                                         // Название финанс. инструмента
   Symb= Symbol ();                               // Название фин.инстр.
double Value_max= 1.0000 ;
double Value_min= 0.9980 ;
double Open_1= Open[ 1 ];
double Close_1= Close[ 1 ];
//----

//--------------------------------------------------------------- 4 --

double Val= iCustom ( NULL , 0 , "HMR MULTI Indicator" , 0 , 0 );   
if (Val >= Value_max) Val_max=true;                   // 
if (Open_1 > Close_1) Cl_dn=true;
if (Val <= Value_min && Cl_dn==true) Val_min=true;
if (Val_max==true && Cl_dn==true && Val_min==true)
  {
   for (j = 0 ; j < OrdersTotal (); j++)
    {
     OrderSelect (j, SELECT_BY_POS, MODE_TRADES);
     if ( OrderSymbol () == Symbol ())
      {
       if ( OrderType () == OP_SELL) return ( 0 );
      }
    }

   OrderSend ( Symbol (),OP_SELL, 0.1 , NormalizeDouble (Bid, Digits ), 2 ,Bid+ 400 * Point ,Bid- 400 * Point , "" , 3 , Red );   // Открытие SELL
   Val_max=false; Cl_dn=false; Val_min=false;
  }

//----
   return ( 0 );
  }
 

Hey!

Aynı anda açık pozisyonları 1 ile sınırlamak için yola çıktım.

Açık/Kapalı seviye = 3/2 çarpı Point ile pozisyon açma/kapama koşullarına yerleştirilen değişken yardımıyla bu sorunu çözmeye çalıştım ama başarılı olamadım.

Lütfen çözmeme yardım et :)

 
kolyango :


Peki doğru olacak mı? Test cihazında birden fazla anlaşma var... Olsa da, eğer doğruysa. Yanlış olan ne...?

Ve şimdi koşulları bir kez daha normal bir dilde tam olarak tanımlayın ve kodu düzeltmek mümkün olacak ... İyi olarak, sinyallerin bir son kullanma tarihi ve iptali olmalıdır.
 
skyjet :

Hey!

Aynı anda açık pozisyonları 1 ile sınırlamak için yola çıktım.

if ( OrdersTotal() >0) dönerse;

veya sembol verilen ve geciktiricileri atan çeşitler.

 

yani benim versiyonumda

if( OrdersTotal() >1)dönüş;

?

 
splxgf :
Ve şimdi koşulları bir kez daha normal bir dilde tam olarak tanımlayın ve kodu düzeltmek mümkün olacak ... İyi olarak, sinyallerin bir son kullanma tarihi ve iptali olmalıdır.

Tüm bu koşullar birbiri ardına hemen gelmeyebilir (belki bir veya iki veya üç saat içinde), bu nedenle gösterge değeri 1,0000'e ulaşır ulaşmaz bu koşulun artık her tikte kontrol edilmediğinden emin olmanız gerekir, ancak bekleyin. bir çubuk bir düşüşle kapanır ve bundan sonra, bu 2 koşul her tikte kontrol edilmedi, ancak gösterge değeri 0,9980'den küçük veya ona eşit olana kadar bekleyin. Tüm koşullar karşılandığında, 400p stop loss ile 0.1 lot satmak için bir piyasa emri açın. ve 400p kar elde edin.
 
skyjet :

yani benim versiyonumda

if(OrdersTotal()>1)dönüş;

?

Bir sipariş açmaya çalışmadan önce ilk seçeneği yerleştirmek daha iyidir ( OrderSend )