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

 
Başlamanın üstünde bir bilet duyurdu. Typer yalnızca bir sırayı değiştirir, ancak bu başka bir hatadır! Ve sonra değişkenin ifs içinde bildirildiği ortaya çıktı.
 
Dimka-novitsek :

Günaydın! Ve boşluklu durum ne anlama geliyor? Dakikada, fiyat 35 pips yükseldiğinde, stop loss emrin 10 pips altına hareket eder, yani. fiyata uzaklığı 45 kişidir.

Ya da başka hangi boşluktan bahsediyorsunuz?


Günaydın, taze kafa!

Değişiklik emri iletilirken, alınırken ve yürütülürken fiyat sabit değil, yukarı veya aşağı, kim bilir?!

 #include <stderror.mqh>
#include <stdlib.mqh> 
//-------------------

extern int prev = 30 ;//зазор! Для 5-знака!
extern int sl   = ??;
extern int tp   = ??;
//------------------
int start()
{
//------------------
//----------------------/  Stops & Trailing  \----------------------\\
   for ( int i = 0 ; i < OrdersTotal (); i++)
  {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
    {
       if ( OrderSymbol () != Symbol () && OrderMagicNumber () != Magic) continue ;
       if ( OrderCloseTime () != 0 ) continue ;
       if ( OrderType () == OP_BUY)
      {
         if ( OrderStopLoss () < OrderOpenPrice () || OrderStopLoss () == 0 )
        {
//----------------------
           if ( OrderStopLoss () == 0 )
           if (Bid < OrderOpenPrice () && Bid > NormalizeDouble ( OrderOpenPrice ()-sl* Point +prev* Point , Digits ))
           if (Bid > NormalizeDouble ( OrderOpenPrice ()-sl* Point +prev* Point , Digits ))
          {
            SL = NormalizeDouble ( OrderOpenPrice ()-sl* Point , Digits );
             if (Bid < NormalizeDouble ( OrderOpenPrice ()+tp* Point -prev* Point , Digits ))
            {
              TP = NormalizeDouble ( OrderOpenPrice ()+tp* Point , Digits );
              ModifyOrder( OrderTicket (), OrderOpenPrice (),SL,TP, 0 , Blue ); return ( 0 );
        } } }
//-----------------------
//------------------------/  Modify Order  \------------------------\\
void ModifyOrder( int ticket, double price, double stoploss, double takeprofit, datetime e, color arrow_color)
{
   int ModifyCnt = 0 , err;
   while (ModifyCnt < 3 )
  {
     if ( OrderModify (ticket, NormalizeDouble (price, Digits ), NormalizeDouble (stoploss, Digits ),
     NormalizeDouble (takeprofit, Digits ), 0 ,arrow_color))
    ModifyCnt = 3 ;
     else err = GetLastError ();
     if (err > 0 )
    { 
       Print (ModifyCnt, " #" ,ticket, " Error modifing order: (" , err , ") " , ErrorDescription(err));
       Sleep ( 3000 ); RefreshRates (); ModifyCnt++;
} } }

Ve Sella için tam tersi doğrudur! Bence gereksiz olan yorumlar olmadan çözmede iyi şanslar!

Ve lütfen yazılarınızın daha okunaklı olması için Rusça açıklayıcı sözlüğe bakın.

Bazen uğrarım, çünkü 10 yıldan fazla bir süredir başka bir dilde düşünüyorum ve "yeniliklerinizden" haberdar değilim ... :))

 
Dimka-novitsek :

Güzel gün! Sipariş değişikliği - hata 4051. Bunu bir saattir düşünüyorum. Görünüşe göre parametre orada doğru !!! Kısacası, kelimenin tam anlamıyla. fiyat parametresi, varsayılan olarak sipariş açılış fiyatı olan OrderOpenPrice ()'dir.

Stop emrinin açılış fiyatının 10 puan altına taşıyoruz ve fiyat unutuldu. Bir sipariş açılırken tsena değişkeninde hatırlanır.

Biri kârlı, diğeri kârsız olmak üzere iki emir var. Burada, açık görünüyor. Hata nereden? Onun için başka ne var?

Evet, artık alakalı olmasa da durum açık görünüyor. Yani fiyat 30 puan gitti - koşul çalıştı. ( tsena+ 30 * Puan ).

Bir kez giyin perenos=true; Bu koşullar aslında işe yarıyor gibi görünüyor.

Kendimi nasıl düşüneceğimi bilmiyorum.

Aslında bir kez giyin perenos=true; Bu koşullara uyulmasına gerek yoktu, çünkü hiçbir yerde giymez.

Bu hat:

         int tacket = OrderSend ( Symbol (), OP_BUY, lot, NormalizeDouble (Ask, Digits ), 5 , NormalizeDouble (Ask - ( 35 * Point ), Digits ), 
             NormalizeDouble (Ask + ( 45 * Point ), Digits ), NULL , 450 , 0 , CLR_NONE );

ve sonra (bu kene üzerinde değil) bu değişkeni bir siparişi bilet = 0 (değişken sıfıra sıfırlanacak) ile değiştirmek için kullanmak, temel bilgileri bilmediğinizi gösterir - yerel ve global değişkenler kavramlarıyla başlayın.

Ve 2 saniye içinde yeni açılan bir siparişin bir kopyası açılıyor - BU BİR BÜYÜK !!! Ağlıyorum... :)

 
TEŞEKKÜR EDERİM!!
 
borilunad :

Fonksiyonlar olmadan mümkün:

Cevaplamak için acele etmeden önce, önce koşulları (bir kişinin neye ihtiyacı olduğunu) dikkatlice okuma zahmetine girecek ve ardından kodunuzun sonuçlarını alıp hesaplayacaksınız.
İlk olarak, Mevduattan bahsediyoruz ve bu AccountBalance(). Equ / depo bir kesirli sayıdır ve ne tür bir derecelendirmeden bahsedebiliriz ???
 
TarasBY :
Cevaplamak için acele etmeden önce, önce koşulları (bir kişinin neye ihtiyacı olduğunu) dikkatlice okuma zahmetine girecek ve ardından kodunuzun sonuçlarını alıp hesaplayacaksınız.
İlk olarak, Mevduattan bahsediyoruz ve bu AccountBalance(). Equ / depo bir kesirli sayıdır ve ne tür bir derecelendirmeden bahsedebiliriz ???

Burada adım atmaktansa yumuşaklığın daha uygun olduğuna inanıyorum. Ve "bir kişinin neye ihtiyacı olduğuna" gelince, onun neye ihtiyacı olduğunu hala açıkça anlamadığını mükemmel bir şekilde anlıyorsunuz!
 
TG :

Merhaba.

Partiyi adım adım hesaplamak için bir fonksiyona ihtiyacınız var. Ne yapılandırılabilir, örneğin, lotu artırmak için gittiğimiz her 500'de

Yani, depo 1000 - lot 0.1

depo 1500 - lot 0.15

depo 2000 lot 0.2

lütfen işlevi gönderin.


 int start(){ double lot,V= AccountBalance (); if (V< 1000 ){lot= 0.05 ; return ( 0 );}
  V= MathFloor ( AccountBalance ()/ 500 );lot= NormalizeDouble ((V* 5 )/ 100 , 2 );
   Alert ( "lot = " ,lot); return ( 0 );}
 
Roll :

EN önemli satır:

 double lot, V= AccountBalance ();
if (V< 1000 ) {lot= 0.05 ; return ( 0 );}
bakiye 1000'in altına düşerse - ÇALIŞMAYACAĞIM - bu DOĞRU !!! - MM, sonuçta :)))
 
borilunad :

Burada adım atmaktansa yumuşaklığın daha uygun olduğuna inanıyorum. Ve "bir kişinin neye ihtiyacı olduğuna" gelince, onun neye ihtiyacı olduğunu hala açıkça anlamadığını mükemmel bir şekilde anlıyorsunuz!
A-ah-ah?! - peki, o zaman dipnot uygundur: "Dinle Vanya, en sevdiğin şarkıyı" Keçe çizmeler hakkında "ve gösteriş yapma." :)))
 
TarasBY :
A-ah-ah?! - peki, o zaman dipnot uygundur: "Dinle Vanya, en sevdiğin şarkıyı" Keçe çizmeler hakkında "ve gösteriş yapma." :)))


Ama ciddice? Özkaynaktan yapılan hesaplamanın Bakiyeden daha az tehlikeli olduğunu yeni başlayanlardan neden gizleyelim?

Genelde AccountFreeMargin()'den sayıyorum ve sakin hissediyorum! Hem de çizmesiz! :))