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

 
Integer :


Eh, her zaman olduğu gibi ve hemen ... Moderatörler, uyulması gereken sırayı takip etmek daha iyi olacaktır. Forumda bir tür tımarhane var ama moderatörler nerede? Salla, kır, cehenneme gönder, hemen moderatörler var. Belki kabalları bağlamanın zamanı gelmiştir?

Forumun devlerinin önemsiz şeyler için nasıl tartıştığını izlemek acı veriyor. En güçlü kaynağın programcılarından oluşan bir forumdur. Daha kibar ol. Öneririm:

1. Gizli bir biçimde bile kişiliklere geçmeye çalışırken - bir günlük yasak;

2. Kişisel hakaret - bir hafta boyunca yasak;

3. Bir ay boyunca küfür yasağı ile tekrarlanan hakaret;

4. Önceki tüm uyarıları görmezden gelmek ve ihlalleri katı bir biçimde tekrarlamak - sonsuz bir yasak.

 
yosuf :

Forumun devlerinin önemsiz şeyler için nasıl tartıştığını izlemek acı veriyor. En güçlü kaynağın programcılarından oluşan bir forumdur. Daha kibar ol. Öneririm:

1. Gizli bir biçimde bile kişiliklere geçmeye çalışırken - bir günlük yasak;

2. Kişisel hakaret - bir hafta yasak;

3. Bir ay boyunca küfür yasağı ile tekrarlanan hakaret;

4. Önceki tüm uyarıları görmezden gelmek ve ihlalleri katı bir biçimde tekrarlamak - sonsuz bir yasak.



Kesinlikle katılıyorum, ancak ne yazık ki buradaki moderatörler, "gizli bir biçimde bir şeyi" ortaya çıkaracak kadar yetkin değiller. Parmağınızı ağzınıza sokmayın, tüm incelikli diplomatlar.
 

Offtopik için üzgünüm, ama biri bana bunun nasıl olduğunu söyleyebilir mi:

El kitabından:

"Parametreleri referansa göre geçmek mümkündür. Bu durumda, bu tür parametrelerin değiştirilmesi, çağrılan fonksiyondaki karşılık gelen değişkenleri etkiler, referansla iletilir. Dizi elemanları referansla iletilemez. Referansla parametreler sadece içinde iletilebilir. aynı modül, kütüphane fonksiyonları için bu olasılık değildir. Bir parametrenin referans ile geçtiğini belirtmek için , veri tipini & değiştiricisi takip etmelidir.

Diziler referans yoluyla da geçirilebilir, tüm değişiklikler orijinal diziye yansıtılacaktır. Basit parametrelerin aksine, diziler referans yoluyla ve kitaplık işlevlerine iletilebilir ."

Bir kütüphane işlevinden referans olarak bir değer iletmek için, tek boyutlu bir dizi şeklinde bir ara bağlantı kullanmam gerekiyor,

Başka geçici çözümler var mı?

Ve neden her şey böyle yapılıyor?

 
ALXIMIKS :

Offtopik için üzgünüm, ama biri bana bunun nasıl olduğunu söyleyebilir mi:

El kitabından:

"Parametreleri referansa göre geçmek mümkündür. Bu durumda, bu tür parametrelerin değiştirilmesi, çağrılan fonksiyondaki karşılık gelen değişkenleri etkiler, referansla iletilir. Dizi elemanları referansla geçirilemez. Referansla parametreler sadece bir parametre içinde iletilebilir. modülü, kitaplık işlevleri için bu olasılık değildir. Bir parametrenin referans olarak iletildiğini belirtmek için , veri tipini & değiştiricisi takip etmelidir.

Diziler referans yoluyla da geçirilebilir, tüm değişiklikler orijinal diziye yansıtılacaktır. Basit parametrelerin aksine, diziler referans yoluyla ve kitaplık işlevlerine iletilebilir ."

1. Bir kütüphane işlevinden referans olarak bir değer iletmek için, tek boyutlu bir dizi şeklinde bir ara bağlantı kullanmam gerekiyor,

Başka geçici çözümler var mı?

2. Ve neden her şey bu şekilde yapılıyor?

1. Doğru. MQL4'te başka bir şekilde çalışmayacaktır.

2. Tam olarak ne? Referans yoluyla geçmekle ilgiliyse, bu büyük miktarda verinin (temel türün uzunluğundan daha büyük) aktarılması içindir. Yığını onlarla yüklememek için. Genellikle yapılar, sınıflar, diziler işaretçi veya referans ile iletilir. Bununla birlikte, sınıf ve yapı işlevden dönüş yoluyla döndürülebilir. Ayrıca, bir sınıfa, yapıya veya diziye bir başvuru veya işaretçi döndürebilirsiniz.

 

Böyle bir sorun var:

Stoploss'u değiştirdiğimde, zaman zaman son açık siparişte stop koymuyor. Oldukça nadiren olur ama zaman zaman vurur.

Fiyat hatası yoktur. Sadece alçak bazen son pozisyon için bir emir vermez, bundan sonra emirler yeniden hesaplanır.

Nerede yanlış açıkladım demeyin?

 //+-------------------------------------------------------------------------------------+
//|                        Управление StopLoss, TakeProfit                              |
//+-------------------------------------------------------------------------------------+
bool ProfitManagement()
{
double StopLossBuy = BuyAP+Profit* Point ;                             //Вычисляем StopLoss
double TakeProfitBuy = BuyAP + Profit* Point ;                  //Вычисляем цену TakeProfit
double StopLossSell = SellAP-Profit* Point ;
double TakeProfitSell = SellAP - Profit* Point ;
RefreshRates();
for ( int good = 0 ; good < OrdersTotal (); good ++)      // Выбираем со всего массива ордеров
 {
 if ( OrderSelect (good, SELECT_BY_POS, MODE_TRADES))             
 if (OrderSymbol() != Symbol () || OrderMagicNumber() != MagicNumber) continue ;
 if (OrderSymbol()== Symbol ()&&OrderMagicNumber()==MagicNumber)   //Выбираем ордера эксперта
   { 
//-------------------------Order Buy-----------------------------------------------------  
if (BuyCount > 1 )                                           //Если открыты длинные позиции
 {
 if (BuyAP < Bid)                                                 //Если  мы идем по рынку  
 if ( MathAbs (OrderStopLoss() - StopLossBuy) >= Tick)           // Профит не равен нужному
 if (Bid - StopLossBuy > DedZone)                     // Уровень достаточно удален от цены
 if (WaitForTradeContext())                                 // Свободен ли торговый поток?
 if (OrderType() == OP_BUY)                                         // Выбираем ордера Buy
 if (!OrderModify(OrderTicket(), 0 , NP(StopLossBuy), 0 , 0 , Lime))     // Изменяем StopLoss
  {
 Alert ( Symbol (), " Хрень со стопами! " ,   GetLastError ());
 return ( false );
  }

// ну и далее по логике
 
yosuf :

Forumun devlerinin önemsiz şeyler için nasıl tartıştığını izlemek acı veriyor. En güçlü kaynağın programcılarından oluşan bir forumdur. Daha kibar ol. Öneririm:

1. Gizli bir biçimde bile kişiliklere geçmeye çalışırken - bir günlük yasak;

2. Kişisel hakaret - bir hafta yasak;

3. Bir ay boyunca küfür yasağı ile tekrarlanan hakaret;

4. Önceki tüm uyarıları görmezden gelmek ve ihlalleri katı bir biçimde tekrarlamak - sonsuz bir yasak.


Çekim ne zamandı? olmayacak mı?
 
Limita :

Böyle bir sorun var:

Stoploss'u değiştirdiğimde, zaman zaman son açık siparişte stop koymuyor. Oldukça nadiren olur ama zaman zaman vurur.

Fiyat hatası yoktur. Sadece alçak bazen son pozisyon için emir vermez, ardından emirler yeniden hesaplanır.

Nerede yanlış açıkladım demeyin?

Bu sırayı kelimelerle açıklayın:

   //-------------------------Order Buy-----------------------------------------------------  
         if (BuyCount > 1 ) {
             if (BuyAP < Bid)                                       //Если  мы идем по рынку, то выполнится следующая  
             if ( MathAbs (OrderStopLoss() - StopLossBuy) >= Tick)   // Профит не равен нужному
             if (Bid - StopLossBuy > DedZone)                       // Уровень достаточно удален от цены
             if (WaitForTradeContext())                             // Свободен ли торговый поток?
             if (OrderType() == OP_BUY)                             // Выбираем ордера Buy
             if (!OrderModify(OrderTicket(), 0 , NP(StopLossBuy), 0 , 0 , Lime)) {
               Alert ( Symbol (), " Хрень со стопами! " ,   GetLastError ());
               return ( false );
            }

Basit bir deyişle, programlamadan uzak bir arkadaşınıza nasıl söylersiniz?

 

Her pozisyondan kazanmak istiyoruz, örneğin 50 puan. StopLoss , ortalama fiyatımız + 50 pip'e eşittir.

Açık uzun bir pozisyonumuz varsa. ondan biraz para kazanıyoruz. StopLoss'u mutabık kalınan seviyeye ayarladık. Pazar büyümeye devam etsin. Hala yeterince para kazanamıyorsak, yeterince kazanmaya başlayana kadar bekleriz.

Bai yönünde başka bir pozisyon açıyoruz. Ortalama fiyat değişti, StopLoss'u değiştiriyoruz.

Ve tabii stopları yerleştirirken brokerin kurallarına uyuyoruz (ticaret akışı, stop seviyesi.) yoksa broker bizi anlamaz :))

umarım anlatabilmişimdir :)

 
Limita :

Her pozisyondan kazanmak istiyoruz, örneğin 50 puan. StopLoss , ortalama fiyatımız + 50 pip'e eşittir.

Açık uzun bir pozisyonumuz varsa. ondan biraz para kazanıyoruz. StopLoss'u mutabık kalınan seviyeye ayarladık. Pazar büyümeye devam etsin. Hala yeterince para kazanamıyorsak, yeterince kazanmaya başlayana kadar bekleriz.

Bai yönünde başka bir pozisyon açıyoruz. Ortalama fiyat değişti, StopLoss'u değiştiriyoruz.

Ve tabii stopları yerleştirirken brokerin kurallarına uyuyoruz (ticaret akışı, stop seviyesi.) yoksa broker bizi anlamaz :))

umarım anlatabilmişimdir :)

M-dya-s... Demek istediğim - o satırların mantığı...

Orada belirsiz bir mantığın var, tk. kıvırcık parantez yok. Bu, önceki koşul karşılandığında her satırın yürütülmeyeceği anlamına gelir.

 
Limita :

Böyle bir sorun var:

Stoploss'u değiştirdiğimde, zaman zaman son açık siparişte stop koymuyor. Oldukça nadiren olur ama zaman zaman vurur.

Fiyat hatası yoktur. Sadece alçak bazen son pozisyon için bir emir vermez, bundan sonra emirler yeniden hesaplanır.

Nerede yanlış açıkladım demeyin?


 for ( int good = 0 ; good < OrdersTotal (); good ++){                                 // Выбираем со всего массива ордеров
    }    

numaralandırmanın böyle yapılması daha iyidir (birisi siparişleri değiştirirken veya silerken numaralandırma seçeneğinizle ilgili sorunları olduğunu yazdı):

 for ( int good = OrdersTotal ()- 1 ; good >= 0 ; good --){     // Выбираем со всего массива ордеров
    }  

Ve neden yağ-tereyağı??? (bir şey bırak)

 if (OrderSymbol() != Symbol () || OrderMagicNumber() !=  MagicNumber) continue ;
 if (OrderSymbol() == Symbol () && OrderMagicNumber() ==  MagicNumber) {           //Выбираем ордера эксперта
    }