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

 
dyxaa :

insanlar bana n'den sonra bekleyen bir siparişi nasıl kapatabileceğinizi söylüyor, işe yaramazsa puan sayısı?

kapatılamaz, ancak silinebilir .

 

Eğitim amaçlı bir gösterge çiziyorum (yani çalışıyorum) ve verileri değiştirdiğimde aşağıdaki sonucu alıyorum:


Kırmızı ve mavi çizgiler düzgün bir şekilde birbirine geçmiyor.

Bu neden oluyor? ve nasıl atlanır?

   for (i = limit; i >= 0 ; i--) 
    {
     cciTrendNow      = iCCI ( NULL , 0 , CCIPeriod, PRICE_TYPICAL , i);
     cciTrendPrevious = iCCI ( NULL , 0 , CCIPeriod, PRICE_TYPICAL , i+ 1 );

     if (cciTrendNow > st && cciTrendPrevious < st)
      {
       TrendUp[i+ 1 ] = TrendDown[i+ 1 ];
       ArrayInitialize ( TrendDown[i+ 1 ], 0 ); // Попытался обнулить, чтобы обойти некрасивую отрисовку.
      }

     if (cciTrendNow < st && cciTrendPrevious > st) 
      {
       TrendDown[i+ 1 ] = TrendUp[i+ 1 ];
       ArrayInitialize ( TrendUp[i+ 1 ], 0 );   // Попытался обнулить, чтобы обойти некрасивую отрисовку.
      }
    }

Sorun, kodun bu bölümünde kendini gösteriyor. Ama bunun üstesinden nasıl gelinir - kendim bir şey bulamadım veya bulamadım. Lütfen bana söyle.

 
dyxaa :

İnsanlar bana, eğer işe yaramadıysa, puan sayısı olan n'den sonra bekleyen bir siparişi nasıl kapatabileceğinizi söylüyor?

Haç üzerine tıklayın!
 
artmedia70 :

Dış değişkenler hakkında konuşmadım. İşte bahsettiğim şey.

Bir durum hayal edelim. Son açık pozisyon verilerine göre karar verilmesi gerekmektedir.


Test cihazı için:

Son açık pozisyonun gerekli verilerini depolayacağımız değişkenler oluşturuyoruz.

Yeni bir pozisyon açılır açılmaz ihtiyaç duyduğumuz verileri hemen bu değişkenlerin içine koyuyoruz.

Bir sonraki pozisyonu açmak için bir sinyal geldiğinde (örneğin, 20 test dakikasından sonra), açılacak pozisyonun verileri hakkında karar verirken bazı kriterleri kontrol etmemiz gerekir. Bu kriterler, koşula göre önceki açık pozisyona bağlıdır. Bunları değişkenlerden okuyoruz (son açılışta kaydettik) ve yeni bir pozisyon için ek veri olarak kullanıyoruz.

Bir pozisyon açtığımızda, yeni açılan pozisyonla ilgili yeni verileri değişkenlere kaydediyoruz.


gerçek:

Aynı durumu düşünelim ama... son pozisyonu açıp verilerini değişkenlere kaydettikten sonra 10 dakikanın geçtiğini de düşünelim (bir sonrakini açmadan önce 10 dakika daha geçmeli (peki, testte öyle varsaydık) durum)). Ve bu süre zarfında danışman bir nedenden dolayı yeniden başlatıldı.

EA'yı yeniden başlattıktan sonra değişkenlerde depolanan son açık pozisyon verilerine ne olacak? Yapmayacaklar.

Peki nereye götürülmeliler? Bu doğru - arayın. Bunun için gerekli verileri arama işlevlerine ihtiyaç vardır. Bu nedenle, gerçek hayatta, ihtiyacımız olduğunda her şeyi hemen bulmak ve değişkenlerde saklamamak daha iyidir, bu gerçekten çok daha kolay ve hızlıdır.


Geç açıklama için özür dilerim - daha yeni çıktı ... :))



Artyom'a teşekkürler. Her şey mantıklı tabii. Bu yüzden fonksiyon yazmayı öğreniyorum. Sadece mantık bazen topaldır. İşte burada tökezliyorum. Sorun, bir işlevden diğerine tüm döngü verilerini yazdırarak en son çözüldüğünde, her şeyin yerine oturması için genel olarak programlamaya birkaç gün ara verdim. Şimdi devam edeceğim!
 
solnce600 :

Baylar, lütfen bu tür bir algoritmayı kodlamak için bir döngü aracılığıyla isteyin.

if (iLow (Symbol (),0, 1 ) > iLow (Sembol (),0, 10 )) // ilk mumun DÜŞÜK ise > onuncu mumun DÜŞÜK

OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-2950*Point,Bid+150*Point,"jfh",123 ); // sipariş aç.

VE İHTİYACIM VAR

Düşük 1 ve aynı anda Düşük 2 ve aynı anda Düşük 3...... ...ve aynı anda Düşük 9 mum > Düşük 10 mum (yani 1'den 9'a kadar Düşük mumlar)

                                                                                                                                             // sipariş aç.

Teşekkür ederim.

Yine de sorunuzu doğru duyduysam kod şu şekilde olacak:

 bool have = true ;

for ( int i= 0 ; i< 10 ; i++)
  {
   if (Low[i] > Low[ 10 ])        // Как вариант:  if ( iLow(Symbol(),0, i ) > iLow(Symbol(),0, 10 ) )
    {
     have = false ;
     break ;
    }
  }

if (have) OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-2950*Point,Bid+150*Point,"jfh",123 );    //открыть ордер.

Ancak bu, SSS isteminden alınmıştır. O olmasaydı başaramazdım.

 

Bir fikir vardı ama gerçek hayatta nasıl yapılacağı ve gerçek hayatta nasıl güvenilir bir şekilde çalışacağı konusunda gerçekten bir fikrim yok.

Mesele şu. Çubuk kapandıktan hemen sonra tabloya bir baykuş yerleştirdikten sonra piyasaya girmeniz gerekiyor, yani. yenisinin açılışında. İlk sipariş içindir. Ayrıca emir TP veya Stop tarafından kapatıldığında, anında yeni bir bar açılışında da emir açılacaktır. Bunu yapmanın en akıllı yolu nedir?

Anladığım kadarıyla, bir değişken oluşturmanız gerekiyor. Mevcut çubuğun açılış fiyatını içine yerleştirin. Ve bu değeri mevcut çubuğun açılış fiyatı ile karşılaştırın. Değişkenin değeri, indeksi sıfır olan mevcut çubuğun açılış fiyatının değerine eşit değilse, bir emir açarız.

Bu en iyi seçenek mi?

 
Chiripaha :

Eğitim amaçlı bir gösterge çiziyorum (yani çalışıyorum) ve verileri değiştirdiğimde aşağıdaki sonucu alıyorum:


Kırmızı ve mavi çizgiler düzgün bir şekilde birbirine geçmiyor.

Bu neden oluyor? ve nasıl atlanır?

Sorun, kodun bu bölümünde kendini gösteriyor. Ama bunun üstesinden nasıl gelinir - kendim bir şey bulamadım veya bulamadım. Lütfen bana söyle.


Vay!... Anladım... :)))

Şimdi diğer her şeyle başa çıkmak için - oldukça iyi olurdu. Yardım etmek isteyen herkese teşekkürler! :))

2 tane daha aynı tamponları açıyorum - çizilmiyorlar ... Ne tür bir büyücülük ... - Tamam, inceleyeceğiz ve araştıracağız. "Büyük" için zaman harcamak üzücü olsa da. Yeni bir şey icat etmenin zamanı ne zaman?

 
hoz :

Bir fikir vardı ama gerçek hayatta nasıl yapılacağı ve gerçek hayatta nasıl güvenilir bir şekilde çalışacağı konusunda gerçekten bir fikrim yok.

Mesele şu. Çubuk kapandıktan hemen sonra tabloya bir baykuş yerleştirdikten sonra piyasaya girmeniz gerekiyor, yani. yenisinin açılışında. İlk sipariş içindir. Ayrıca emir TP veya Stop tarafından kapatıldığında, anında yeni bir bar açılışında da emir açılacaktır. Bunu yapmanın en akıllı yolu nedir?

Anladığım kadarıyla, bir değişken oluşturmanız gerekiyor. Mevcut çubuğun açılış fiyatını içine yerleştirin. Ve bu değeri mevcut çubuğun açılış fiyatı ile karşılaştırın. Değişkenin değeri, indeksi sıfır olan mevcut çubuğun açılış fiyatının değerine eşit değilse, bir emir açarız.

Bu en iyi seçenek mi?


Uygulanırsa, gerçek hayatta demodaki kadar güvenilir şekilde çalışacaktır. Ama kârlı olduğu gerçeği değil.

Yeni bir çubuğun görünümü aracılığıyla uygulayın. Ama hangi yöne açılacağını ve bu tarafın hangi koşullar altında belirlendiğini formüle etmediniz.

Hiçbir şeyi karşılaştırmanıza gerek yok - yeni bir çubuk göründüğünde (verdiğiniz girdiye göre), bir sipariş açmanız gerekiyor ve hepsi bu.

newBars = iBarShift( Symbol (), PERIOD_H1 , lastH1BarTime);    // Это было найдено через поиск на форуме

Hayal edemiyorsanız:

"Ve deneyim zor hataların oğludur.
Ve dahi paradoksların arkadaşıdır "(Alexander Sergeevich size yardım edecek)

Bir baykuş yapmak (yazmak) ve deneysel olarak kontrol etmek gerekir. - Birinin sizin için baykuş yazması pek olası değildir (ücretsiz). Önermek bir şeydir. Ancak uygulanacak fikirler (düşünceler) artık yardımcı değil, işe yarıyor.

 
borilunad :
Haç üzerine tıklayın!

peki, tam olarak. zekice basit)))

Bana yardım etmenizi rica ediyorum) Bekleyen bir emir vereceğim, peki, bırakalım dur , örneğin, buna ihtiyacım var, böylece fiyat 100 puan düşerse, kaldırılacak, bunu yapabilir miyim?

 
borilunad :
Haç üzerine tıklayın!

peki, tam olarak. zekice basit)))

Bana yardım etmenizi rica ediyorum) Bekleyen bir emir vereceğim, peki, bırakalım dur , örneğin, buna ihtiyacım var, böylece fiyat 100 puan düşerse, kaldırılacak, bunu yapabilir miyim?