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

 

Bir robotun küçük duraklarla her iki yöne de açılması ve kazanan bir poz seçmesi sağlanabilir mi? yoksa fantastik mi?

 

tamam renk olsun...

Soru şu ki - DC'den "SL'yi gizlemek" istiyorum, yani. bunları open operatörüyle ayarlamayın, EA içindeki bir değişkene atayın:

harici çift TrailingStop=25.0;

dış çift Lot = 0.1;

....
çift StopB;

.....

if( giriş koşulu ) {

bilet=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0, "EA Satın Al",123,0,Yeşil);
StopB=Sor-SonrakiDurdur*Çok Sayıda; //
durdurmayı gizle <- doğru mu yapıyorum?

}

.....

if( kar çıkış koşulları || Sor > StopB)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); //
pozisyonu kapat
dönüş(0); // çıkış
}

Ve SL'den çıkış koşulları nerede belirlenir? "||" ile kar kapama koşulu ile birlikte yoksa ayrı mı?

 

Tünaydın! Lütfen bana iCustom işlevini nasıl doğru kullanacağımı söyleyin, histogramlı ayrı bir pencerede çizilen göstergenin rengine göre işlemler için koşullar oluşturmak istiyorum:

color Oct_1=iCustom(NULL,0,"octava_1");

if ( Ekim_1==Yeşil).... vb.

derlerken program bir hata veriyor, "'green' yazıyor - değişken tanımlı değil, sebebi nedir?

Cevap için çok minnettar olacağım)))

 

Soru kaldırıldı, büyük harf önemli çıktı)))

 
DOCTORS :

tamam renk olsun...

Soru şu ki - DC'den "SL'yi gizlemek" istiyorum, yani. bunları open operatörüyle ayarlamayın, EA içindeki bir değişkene atayın:

harici çift TrailingStop=25.0;

dış çift Lot = 0.1;

....
çift StopB;

.....

if( giriş koşulu ) {

bilet=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0, "EA Satın Al",123,0,Yeşil);
StopB=Sor-SonrakiDurdur*Çok Sayıda; //
durağı gizle <- doğru mu yapıyorum?

}

.....

if( kar çıkış koşulları || Sor > StopB)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); //
pozisyonu kapat
dönüş(0); // çıkış
}

Ve SL'den çıkış koşulları nerede belirlenir? "||" ile kar kapama koşulu ile birlikte yoksa ayrı mı?

Profesyonel değilim ama aynı amacım vardı. Şahsen ben böyle yazdım (profesyoneller gelecek - düzeltecekler)

Bu kısım açık bir emir alır ve dur ve al değerlerini değişkenlere ayarlar.

 // +----------------------------------------------------------------------+
//------- : функция поиска открытых ордеров по символу графика, подхват и установки уровней стопа и профита
double TradeSymbol()
   {
   int     TotalTradeSymbol = 0 ;
   int     SendGo           = 0 ;
   total= OrdersTotal ();  
   for (cnt= 0 ;cnt<total;cnt++)
      {
       OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES);
       if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber)
        {
         if ( OrderType ()== OP_BUY)
          {
           if (StopLoss   > 0 && Bid < OrderOpenPrice ()) {sl = NormalizeDouble ( OrderOpenPrice () - StopLoss* Point , Digits );}  
           if (TakeProfit > 0 )                           {tp = NormalizeDouble ( OrderOpenPrice () + TakeProfit* Point , Digits );}
          }
         if ( OrderType ()== OP_SELL)
          {
           if (StopLoss   > 0 && Ask > OrderOpenPrice ()) {sl = NormalizeDouble ( OrderOpenPrice () + StopLoss* Point , Digits );}  
           if (TakeProfit > 0 )                           {tp = NormalizeDouble ( OrderOpenPrice () - TakeProfit* Point , Digits );} 
          }
         if ( OrderStopLoss ()   != sl){SendGo++;}
         if ( OrderTakeProfit () != tp){SendGo++;}
         if (!UseVirtualTradeLevel && SendGo != 0 ) { OrderModify ( OrderTicket (), OrderOpenPrice (),sl,tp, 0 , CLR_NONE );}
        TotalTradeSymbol++;
        }
      }
     return (TotalTradeSymbol);  
    }
// +----------------------------------------------------------------------+

bu kısım alma ile kontrol eder ve kapatır

 // +----------------------------------------------------------------------+
//------- : функция проверки тейкпрофита
void CheckTakeProfit()
   {
   if (tp == 0 ) return ( 0 );
   total= OrdersTotal ();  
   for (cnt= 0 ;cnt<total;cnt++)
      {
       OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES);
       if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber)
        {
         if ( OrderType ()== OP_BUY)
          {
           if (Bid > tp)
            {
             OrderClose ( OrderTicket (), OrderLots (), Bid, SleepPage, Lime );
             if (UseSound) PlaySound ( "ok.wav" );
            }
          }
         if ( OrderType ()== OP_SELL)
          {
           if (Ask < tp)
            {
             OrderClose ( OrderTicket (), OrderLots (), Ask, SleepPage, Lime );
             if (UseSound) PlaySound ( "ok.wav" );
            }
          }
        }
      }
    }
// +----------------------------------------------------------------------+

bu kısım durarak kontrol eder ve kapanır

 // +----------------------------------------------------------------------+
//------- : функция проверки стоплоса
void CheckStopLoss()
   {
   if (sl == 0 ) return ( 0 );
   total= OrdersTotal ();  
   for (cnt= 0 ;cnt<total;cnt++)
      {
       OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES);
       if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber)
        {
         if ( OrderType ()== OP_BUY)
          {
           if (Bid < sl)
            {
             OrderClose ( OrderTicket (), OrderLots (), Bid, SleepPage, Blue );
             if (UseSound) PlaySound ( "ok.wav" );
            }
          }
         if ( OrderType ()== OP_SELL)
          {
           if (Ask > sl)
            {
             OrderClose ( OrderTicket (), OrderLots (), Ask, SleepPage, Blue );
             if (UseSound) PlaySound ( "ok.wav" );
            }
          }
        }
      }
    }
// +----------------------------------------------------------------------+
not

proff - kendi kendine öğretilenlere gülme, belki başka bir şekilde mümkün, ama yine de benim için çalışıyor ....

 
elmucon :

Profesyonel değilim ama aynı amacım vardı. Şahsen ben böyle yazdım (profesyoneller gelecek - düzeltecekler)

Bu kısım açık bir emir alır ve dur ve al değerlerini değişkenlere ayarlar.

bu kısım alma ile kontrol eder ve kapatır

bu kısım durarak kontrol eder ve kapanır

not

proff - kendi kendine öğretilenlere gülme, belki başka bir şekilde mümkün, ama yine de benim için çalışıyor ....

Her şey pratikte vızıldıyor! Tek şey, giriş/çıkışta birkaç tuhaflık. Eh, böyle bir strateji kaymadan kurtarmaz. Ve çok teşekkürler!
 

Danışman için mevcut zaman dilimini nasıl belirleyeceğimi söyle?

M1 zaman çerçevesi bir koşulu yerine getiriyorsa ve M5 zaman çerçevesi başka bir koşulu yerine getiriyorsa gereklidir.

 
sss2019 :

Danışman için mevcut zaman dilimini nasıl belirleyeceğimi söyle?

M1 zaman çerçevesi bir koşulu yerine getiriyorsa ve M5 zaman çerçevesi başka bir koşulu yerine getiriyorsa gereklidir.


Period() işlevini kullanma
 
sss2019 :

Danışman için mevcut zaman dilimini nasıl belirleyeceğimi söyle?

M1 zaman çerçevesi bir koşulu yerine getiriyorsa ve M5 zaman çerçevesi başka bir koşulu yerine getiriyorsa gereklidir.

 if ( Period ()== 1 ) return; //Условие минуток
if ( Period ()== 5 ) bool working=true; //Условие пятиминуток
 
splxgf :


Teşekkür ederim. Yani M1 periyodu 1 değerine ve M5 periyodu 5 değerine karşılık geliyor, H1 periyodunun 60 değerine ve H4 - 240 periyoduna karşılık geldiği ortaya çıkıyor değil mi?

M1 periyodu için case 1 değeri ve M15 periyodu için case 15 değeri seçildiğinde bu yapının çalışması gerekiyor. - sırayla?

   switch ( Period ())
    {
     case 1 : Ba = 60 ;
     case 5 : Ba = 12 ;
     case 15 : Ba = 4 ;
     case 30 : Ba = 2 ;
     case 60 : Ba = 1 ;
    }