[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 933

 
Dimka-novitsek :

İşte burada


Danışman çalışıyor. Fırsatlar açılır
 
gheka :

Hala aptalım ve bana ulaşamıyorum, benzersiz seri numarasının nereden geldiğini anlamıyorum, örneklerde her yerde her şey farklı,

yanılmıyorsam ben oluşturmuyorum mesela

Soruyu kişiselden sildiğiniz için cevap beklemeden buraya atıyorum:

Bunu şu şekilde parçalayalım:

dizin -

İkinci parametreye bağlı olarak sipariş pozisyonu veya sipariş numarası.
(pozisyon veya sipariş numarası nereden geliyor???)

"ikinci parametreye bağlı olarak" - "seçime" bağlı olduğu anlamına mı geliyor?

Bir siparişin konumu, terminalinizdeki sipariş dizisindeki konumudur. Döngüde yinelediğimiz bu konumdur:

Sipariş arama:

 for ( int index= 0 ; index< OrdersTotal (); index++) // Цикл по терминалу. В кач-ве переменной цикла будет index для наглядности
    {
       if ( OrderSelect (index, SELECT_BY_POS) && OrderMagicNumber()==Magic) // Если выбран ордер и магик равен магику советника
           {
                 if (OrderTipe()==OP_BUY)                                   // Если нам нужен ордер Бай
                   {
                       //............... Тут код обработки выбранного орд
                   }
           }
    }

SELECT_BY_POS'u arıyorsak, bir sonraki parametre varsayılan olarak MODE_TRADES'tir ve yazılamaz, atlanabilir. EA henüz kapanmamış pozisyonları arayacaktır, yani. Marketin içinde.

Zaten kapalı olanlarda sipariş aramamız gerekirse, SELECT_BY_POS parametresinden sonra aşağıdakini de belirtmeliyiz: MODE_HISTORY. Ardından danışman yalnızca kapatılan pozisyonlar ve silinen veya tetiklenen siparişler listesinden arama yapacaktır.

(yanılmıyorsam, bunlar zaten verilmiş siparişler değil mi? "0" yazın en üstten ilki,
"1" listede ikinci sıradadır ve böyle devam eder) muhtemelen???

Bu tam olarak pozisyon, siparişin terminal siparişleri dizisindeki yeri, tabiri caizse - indeksi aynı indekstir
... ve sıra numarası 1'den başlasa da dizinin sıfır hücresinden başlayarak dizide bulunurlar. birinci sıra dizinin sıfır hücresinde, ikincisi - birincide, üçüncüsü - ikincide vb. ...

Şimdi biletler için. Benzersiz bir sipariş numarası olan Ticket, DC'niz tarafından atanır. Bu numara, tam olarak bu sırayı veya konumu benzersiz bir şekilde tanımlayabilir. Aynı zamanda, bazı AMA var ... Bilet daha önce Expert Advisor'da (değişken, dizi) bir yerde saklanmalıdır, böylece bu biletle ihtiyacınız olan siparişin bu olduğundan emin olabilirsiniz. Bu amaçla, yalnızca standart işlevlerle elde edilebilecek siparişlerdeki verileri değil, aynı zamanda içinde hatırladığım, örneğin fibo seviyelerindeki verileri de hatırladığım danışmandaki muhasebe siparişleri için kendi işlevimi kullanıyorum. Bir pozisyon açtıktan hemen sonra hesaplayın ve onları sipariş defterime koyayım. Daha sonra açılış saatine göre kolayca bir pozisyon seçip bir hedef alıyorum ve emir dizimde bu pozisyon için kaydettiğim fibo seviyeleri boyunca durma seviyesini hareket ettiriyorum... Ayrıca, oradan emrimin biletini alabilirim. ihtiyacınız ve ardından standart işlevlerle kullanın -tions:

   if ( OrderSelect (Ticket, SELECT_BY_TICKET) && OrderCloseTime()== 0 ) // Если выбран ордер по тикету и время его закрытия равно нулю
      {
         if (OrderTipe()==OP_BUY)                                   // Если нам нужен ордер Бай
            {
               //............... Тут код обработки выбранного ордера
            }
      }

Burada siparişin kapanış saatini sıfır ile karşılaştırmak gerekiyor. Çünkü bir bilet seçerken MODE_TRADES ve MODE_HISTORY yok sayılır ve kullanılmaz ve emrin kapatılmadığını ve KAPALI DEĞİL pozisyonlar listesinden seçildiğini belirlemek için kapanış saatine bakmamız gerekir. Hala piyasada ise, kapanış zamanı sıfıra eşit olacaktır.
Eğer kapalı bir siparişin verilerine bakmanız gerekiyorsa ve onu biletle seçmeniz gerekiyorsa, kapanış saatini sıfırdan fazla karşılaştırmanız gerekir ve eğer öyleyse, o zaman sipariş zaten kapatılmıştır.

havuz -

Aralarından seçim yapabileceğiniz veri kaynağı. Select parametresi SELECT_BY_POS olduğunda kullanılır. Aşağıdaki değerlerden biri olabilir:
MODE_TRADES (varsayılan) - emir, açık ve bekleyen emirler arasından seçilir,
bunlar güncel siparişler


MODE_HISTORY - sipariş, kapatılan ve silinen siparişlerden seçilir.

ve bu, günlük listesindeki gibi tamamlanmış siparişler listesinden, değil mi?

Bu doğru.

çift SiparişKar( )
net karı döndürür ve ne olur? son sipariş mi yoksa tüm siparişler mi?

Kapatılmamış seçili BİR sipariş için mevcut karı döndürür...

Emir zaten kapalıysa, bu emrin kârını veya zararını döndürür. Seçilmiş biri.

Takasları, komisyonları vb. hesaba katmadan. Bunları hesaba katmak için kendi işlevinizi yapmanız gerekir.

================================================= ===========================

Umarım anlarsın... :)
 

Danışman çalışıyor. Fırsatlar açılır

Teşekkür ederim!!!Görünüşe göre ticaret platformunun hasta olduğunu bilmek.

 
Renown :
Oynaklığı düzeltmek için bir EA'ya ihtiyaç vardır (bunun gibi: Yüksek[iYüksek(NULL, 0, MODE_HIGH, 30, 1)] - Düşük[iLowest(NULL, 0, MODE_LOW, 30, 1)] üstel hareketli ortalama . Anladığım kadarıyla standart iMA bunu yapamıyor ve bunun için bir fonksiyon yazmanız gerekiyor mu? Kod konusunda yardımcı olabilecek var mı?


iMAOnArray

 

herkese iyi günler .... bir sorun vardı ... yardımcı olabilecek var mı ???

Martingale ilkesine dayalı bir EA ile ticaret yapıyorum... Ayrıca buna stoploss eklemeye karar verdim... geyiği hesaplamak için bu formül kullanılıyor...

 tıpa = Ortalama fiyat - kaybı durdurmak * nokta ;
bu bana uymuyor çünkü bu durumda stop sonraki dizlerle değişiyor... ama bütün dizler için sabitlenmesini istiyorum 
örneğin 100 pp... yani sipariş açıldıktan sonra stop 100 pp'ye ayarlanmış... Diyelim ki ikinci diz 30 pp'den sonra açılıyor. onun için dur demek
ilk ile aynı yere gelmek için zaten 70 puan olmalı ...
Kısacası, tüm seri için sabit, değişmeyen bir stoploss'a ihtiyacınız var...
açıklamak zor değilse))) veya bir işlev atar)))) minnettar olacağım

 

Herhangi bir tuşa basmanın tanımıyla ilgili bir soru vardı. Basma gerçeğini izlemek gerekir ve örneğin K'ye basılırsa, bazı eylemler gerçekleştiririz. Burada ( _http://msdn.microsoft.com/en-us/library/ms646293%28v=VS.85%29.aspx ) int GetAsyncKeyState(int vKey) işlevini buldum, temelde ihtiyacınız olan şey... ama orada tıkanıklık: Tıklama gerçeğinin yalnızca MetaTrader penceresi etkinken belirlenmesi gerekir. Kontrol etmek için EA'da aşağıdaki basit kodu kullanıyorum:

 #define VK_K                             0x4B      // K key 
#import         "user32.dll"
   int GetAsyncKeyState( int vKey);

//-----------------------------------------------------------------------------------------------//
int init()  {

 return ( 0 );
}
//-----------------------------------------------------------------------------------------------//
int deinit()   {

 return ( 0 );
}
int start() {
   if (GetAsyncKeyState(VK_K)== 0 ) Print ( "K не нажата..." );
   else { Alert ( "НАЖАТА K" );}
 return ( 0 );
}
Yazıyı yazarken uyarıları dinliyordum :). Lütfen kazanmaya yardım edin =)
 

Korku!!! Arkadaşlar kayboldum... :)

İç içe iki döngü vardır. İç döngüden çıkarken nereye düşerim - dış döngünün başında mı yoksa sonunda mı?

Dıştakinin kapatma braketine mi yoksa açılış braketine mi?

 
artmedia70 :

Korku!!! Arkadaşlar kayboldum... :)

İç içe iki döngü vardır. İç döngüden çıkarken nereye düşerim - dış döngünün başında mı yoksa sonunda mı?

Dıştakinin kapatma braketine mi yoksa açılış braketine mi?

stüdyo kodu.

ancak genellikle iç döngünün kapanış braketinden hemen sonra

 
Necron :

stüdyo kodu.

ancak genellikle iç döngünün kapanış braketinden hemen sonra

Teşekkür ederim. Ben de tam olarak bunu yaptım, ama sonra, bayrak kontrolünü dış döngüde nereye koyacağıma dair şüpheler kafama girdi - kapanış braketinden önce veya açılıştan sonra en başında ...
 

Eh, gerçekten kimse bir dizi için nasıl sabit duracağını bilmiyor ((((

burada birçok profesyonel var, görev muhtemelen zor değil