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

 
sdm :
Açıklamaya ve kavramlarınızın tanımlarına (örneğin, "numaranız") ve buraya noktalama işaretleri ekleyin. Ve bu konuda sadece kendi elleriyle (ve sonra ruh hallerine göre) yapanlara yardım ediyorlar.
 
Belirli bir fiyatta açık veya belirlenmiş bir emir olup olmadığını nasıl öğrenebilirim?
 
sdm :
Belirli bir fiyatta açık veya belirlenmiş bir emir olup olmadığını nasıl öğrenebilirim?

Siparişleri inceliyoruz ve verilen fiyatla karşılaştırıyoruz. Bulursak , açılış saatini kontrol edin.

if(OrderOpenTime()!=0) Sıfıra eşit değilse, açık, eşittir - ertelendi.

 
int başlangıç()
{

double kr =0.00060 // Belirtilen çoklu, adım
double msell =Sor - MathMod (Sor, kr); // satış fiyatı

{
Alert(" Aynen öyle ", msell, "yazılı");
dönüş; // başlangıçtan çık()
}
//----

//----
dönüş(0);

}


söyle bana burada yanlış olan ne?

derlerken 'msell' veriyor - değişken tanımlanmadı C:\Program Files\MetaTrader 4 \experts\temp.mq4 (16, 11)

 
kendim buldum)
 
hoz :

i_AnyBarsToHistory indeksli çubuktan indeks 1'li çubuğa kadar değerlerin hesaplandığı bir sayacımız var. Dizin 30'dan dizin 15'e kadar olan çubuklarda aşağıdaki koşulun karşılandığı ortaya çıktı:

directionMA == CROSS_UP 

ve sonra, örneğin, cnt=2 ise, koşul yerine getirilecektir:

directionMA == CROSS_DN

Ardından cnt, geçmiş değere yükselir. 2 ise, yeni koşul 1, ardından cnt=3 ekleyecek ve 3 değeriyle fonksiyondan çıkacaktır. Ne demek istediğimi anlıyor musunuz? Daha yakından bakın, burada mantık prensipte açıktır.

Cevap vermekte geciktiğim için özür dilerim, anladım. Böyle. Soru şu ki, böyle tek bir sayaç kullanarak, o zaman hangi harekete ait olduğunu belirlemek için nasıl doğru anladım? Sayaca bir mantıksal değişken dikebilirsiniz, ancak o zaman bir değil iki artırabilirsiniz.

 int LastCandlesType( int & cnt){ //передаём параметры по ссылке, т.е. они у нас отсюда меняются на глобальном уровне
         for ( int i=IndicatorCounted(); i>= 1 ; i--){ //считаем все неподсчитанные свечи; появится новая свеча - функция прогонится один раз
                 if (( 2 *cross- 1 )*(Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt){cnt=cnt+ 2 ; //инкрементируем на 2, т.к. у нас в cnt вшит cross
                } else {
                        cross = !cross; //иначе, если не соответствует, оборачиваем флаг направления
                        cnt = cross; //и обнуляем счётчик её значением
                } //потом cnt/2 будет количеством подсчитанных свечей,
        } //а cnt%2 - их направлением.
}

Bunun gibi bir şey.

 
sdm :
 double kr = 0.00060 ;//внимательнее надо быть
sdm :
kendim buldum)

Dedikleri gibi bizim insanımız böyledir, öğüt vererek işkence ederler. Zaman yoktu)

 
Tünaydın. Aşağıdaki durumu nasıl çözeceğimi söyleyin: Pencerede bir OBJ_FIBOARC nesnesi çizdim. Gerekli seviyeleri ayarlayın. Şimdi bir şekilde fiyatın bir veya başka bir seviyeyi geçtiğini anlamanız gerekiyor, bunu nasıl yapacağımı anlayamıyorum. Daha önce benzer bir problemi fibonacci seviyeleri ile çözmüştüm ama orada her şey daha kolay, çünkü yatay seviyelerle çalışıyoruz ve kesişim kolayca hesaplanabiliyor. Burada bir elipsimiz var. Burada bir daire (elips) denklemini kullanmak imkansızdır, çünkü koordinat sistemi X zamanı ve Y fiyatları için, yani. karşılaştırılamaz değerler ne yapalım ?
 
gyfto :

Cevap vermekte geciktiğim için özür dilerim, anladım.

Sürtük! Maşa'ya eziyet ediyorsun :)

hediye :

Cevap vermekte geciktiğim için özür dilerim, anladım. Böyle. Soru şu ki, böyle tek bir sayaç kullanarak, o zaman hangi harekete ait olduğunu belirlemek için nasıl doğru anladım? Sayaca bir mantıksal değişken dikebilirsiniz, ancak o zaman bir değil iki artırabilirsiniz.

 int LastCandlesType( int & cnt){ //передаём параметры по ссылке, т.е. они у нас отсюда меняются на глобальном уровне
         for ( int i=IndicatorCounted(); i>= 1 ; i--){ //считаем все неподсчитанные свечи; появится новая свеча - функция прогонится один раз
                 if (( 2 *cross- 1 )*(Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt){cnt=cnt+ 2 ; //инкрементируем на 2, т.к. у нас в cnt вшит cross
                } else {
                        cross = !cross; //иначе, если не соответствует, оборачиваем флаг направления
                        cnt = cross; //и обнуляем счётчик её значением
                } //потом cnt/2 будет количеством подсчитанных свечей,
        } //а cnt%2 - их направлением.
}

Bunun gibi bir şey.

Eh, gösterge için yazdınız, uzman için değil. Ben uzman bir yazarım.

Ve neden 2 artıralım?

hediye :

Böyle. Soru şu ki, böyle tek bir sayaç kullanarak, o zaman hangi harekete ait olduğunu belirlemek için nasıl doğru anladım?


İşlev parametresinden geçirilen bazı işaretlere dayanarak, bir işaretin (örneğin, düşüş veya yükseliş) ardışık çubuklarının sayılması gerekir.

Bu arada https://www.mql5.com/en/forum/144705 burada ayrı bir şube açtım. İhtiyacınız olan her şey orada listeleniyor. Neyin yanlış olduğunu bulmak çok ilginç.

 
genel olarak, soru şudur ... Anlamıyorum, alıntılar yüklendiğinde, terminal zaman dilimlerini yeniden hesaplamak için komut dosyasını başlattı ..... hangi ayda 30 veya 31 olduğunu nasıl öğrenebilirim?