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

 
Her iki MA'nın MA1_Shift =1 parametrelerini değiştirmeye çalıştım. Yardım etmesi gerekiyor gibi görünüyor. Bir dakika itiraz edeceğim.
 
okidoki543 :
Teşekkürler ama kesin bir çözüm istiyorum. Böylece mevcut çubuk dikkate alınmaz, sadece önceki çubuklar dikkate alınır.

Kesin bir çözüme sahip olmak için, kesin bir çözüme ulaşmak istediğiniz kodunuza ihtiyacınız var. Ve kod yok. Yani çözüm...
 
всokidoki543 :
Teşekkürler ama kesin bir çözüm istiyorum. Böylece mevcut çubuk dikkate alınmaz, sadece önceki çubuklar dikkate alınır.


Kahretsin, başka birinin kodunu araştırdım, yine hazırlıksız, bu parçayı burada değiştirmeyi deneyin. Bu durumda, muhtemelen PRICE_CLOSE veya 0 olmalıdır...

   MA1_0= iMA ( NULL , 0 , MA1_Period, MA1_Shift,MAMethod(MA1_Method), MAPrice(MA1_Price), 1 );     // Текущее    значение 1-й МА
   MA1_1= iMA ( NULL , 0 , MA1_Period, MA1_Shift,MAMethod(MA1_Method), MAPrice(MA1_Price), 2 );     // Предыдущее значение 1-й МА
   MA2_0= iMA ( NULL , 0 , MA2_Period, MA2_Shift,MAMethod(MA2_Method), MAPrice(MA2_Price), 1 );     // Текущее    значение 2-й МА
   MA2_1= iMA ( NULL , 0 , MA2_Period, MA2_Shift,MAMethod(MA2_Method), MAPrice(MA2_Price), 2 );     // Предыдущее значение 2-й МА
 

İşte kod, vardiyaları 0'dan 1'e değiştirdi. Yardımcı olacak mı?

//============================================== ==========================================
//
//
//
//
//
//============================================== ==========================================
harici int MA1_Period=7; // 1. MA Dönemi
harici int MA2_Period=13; // 2. MA Dönemi
harici int MA1_Yöntem=1; // MA1 hesaplama yöntemi (SMA=0,EMA=1,SMMA=2,LWMA=3)
harici int MA2_Yöntem=1; // MA2 hesaplama yöntemi (SMA=0,EMA=1,SMMA=2,LWMA=3)
harici int MA1_Fiyat=0; // MA1 fiyat hesaplama yöntemi
harici int MA2_Fiyat=0; // MA2 fiyat hesaplama yöntemi
harici int MA1_Shift=1; // Zaman kaydırma MA1
harici int MA2_Shift=1; // Zaman kaydırma MA2
harici çift Parti = 0.01; // Sabit parti
dış int kayma = 0; // Piyasa emirleri için fiyat sapması
int Yeni_Bar; // 0/1 Yeni bir çubuğun oluşumu gerçeği
int Zaman_0; // Yeni çubuk başlangıç zamanı

int PosClose; // Geçiş Yönü
int toplam; // Açık sipariş sayısı
çift MA1_0; // 1. MA'nın mevcut değeri (pembe)
çift MA1_1; // 1. MA'nın önceki değeri (pembe)
çift MA2_0; // 2. MA'nın mevcut değeri (mavi)
çift MA2_1; // 2. MA'nın önceki değeri (mavi)
int siparişSatın al; // 1 = bir Satın Alma emrinin mevcut olduğu gerçeği
int siparişSatış; // 1 = Satış emrinin varlığı gerçeği
//============================================== ==========================================
int init()
{

}
//============================================== ==========================================
int başlangıç()
{

çift fiyat;

int toplam=SiparişToplam(); // Toplam sipariş sayısı
for(int i=toplam-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) // Bir sipariş seçin
{
if(OrderType()==OP_BUY) // Alım emri varsa
{
siparişSatın al=1;
if(CrossPositionClose()==1) // Uygunsa siparişi kapat
{ // koşul CrossPositionClose()=1
fiyat=MarketInfo(Symbol(),MODE_BID);
OrderClose(OrderTicket(),OrderLots(),fiyat,slippage, CLR_NONE );
}
}
if(OrderType()==OP_SELL) // Alım emri varsa
{
siparişSat=1;
if(CrossPositionClose()==2) // Uygunsa siparişi kapat
{ // koşul CrossPositionClose()=2
fiyat=MarketInfo(Symbol(),MODE_ASK);
OrderClose(OrderTicket(),OrderLots(),fiyat,slippage,CLR_NONE);
}
}
}
}

Yeni_Bar=0; // Önce sıfırla
if (Time_0 != Time[0]) // Çubuk başlangıç zamanı zaten farklıysa
{
Yeni_Bar=1; // Ve işte yeni çubuk
Zaman_0 = Zaman[0]; // Yeni bir çubuğun başlangıç zamanını hatırla
}

MA1_0=iMA(NULL,0, MA1_Period, MA1_Shift,MAMethod(MA1_Method), MAPrice(MA1_Price), 0); // 1. MA'nın mevcut değeri
MA1_1=iMA(NULL,0, MA1_Period, MA1_Shift,MAMethod(MA1_Method), MAPrice(MA1_Price), 1); // 1. MA'nın önceki değeri
MA2_0=iMA(NULL,0, MA2_Period, MA2_Shift,MAMethod(MA2_Method), MAPrice(MA2_Price), 0); // 2. MA'nın mevcut değeri
MA2_1=iMA(NULL,0, MA2_Period, MA2_Shift,MAMethod(MA2_Method), MAPrice(MA2_Price), 1); // 2. MA'nın önceki değeri


dönüş;
}

//============================================== ==========================================
int CrossPositionClose()
{
PozKapat=0; // Köpeğin gömülü olduğu yer burası!! :)
if ((MA1_1>=MA2_0 && MA1_0<MA2_0) || (MA1_1>MA2_0 && MA1_0<=MA2_0)) // Yukarıdan Aşağı Geçiş {
{
PozKapat=1;
}
if ((MA1_1<=MA2_0 && MA1_0>MA2_0) || (MA1_1<MA2_0 && MA1_0>=MA2_0)) // Aşağıdan Yukarıya Geçiş
{
PozKapat=2;
}
dönüş(PosClose); // Çapraz yönü döndür.
}
//============================================== ==========================================

//============================================== ==========================================
int MAYöntemi(int MA_Yöntemi)
{
geçiş(MA_Yöntem)
{
durum 0: dönüş (0); // MODE_SMA=0 döndürür
durum 1: dönüş(1); // MODE_EMA=1 döndürür
durum 2: dönüş(2); // MODE_SMMA=2 döndürür
durum 3: dönüş(3); // MODE_LWMA=3 döndürür
}
}
//============================================== ==========================================
int MAPrice(int MA_Fiyat)
{
geçiş(MA_Fiyat)
{
durum 0: dönüş(PRICE_CLOSE); // PRICE_CLOSE=0 döndürür
durum 1: iade(PRICE_OPEN); // PRICE_OPEN=1 döndürür
durum 2: iade(PRICE_HIGH); // PRICE_HIGH=2 döndürür
durum 3: iade(PRICE_LOW); // PRICE_LOW=3 döndürür
durum 4: dönüş(PRICE_MEDIAN); // PRICE_MEDIAN=4 döndürür
durum 5: iade(PRICE_TYPICAL); // PRICE_TYPICAL=5 döndürür
durum 6: dönüş(PRICE_WEIGHTED); // PRICE_WEIGHTED=6 döndürür
}
}
//============================================== ==========================================

 
Sepulca, zaten denedim, derleyici yemin ediyor.
 
okidoki543 :
Sepulca, zaten denedim, derleyici yemin ediyor.

Olmaz, hemen deneyeceğim....
 
Kahretsin ve şimdi yemin etmiyor. Dağıttığım için özür dilerim. Bazı nedenlerden dolayı, hata daha önce ortaya çıktı. (
 
Bir incir küfretmez .... Sizin için test edin ..... Zaten değişiklikler yaptım, yazar beni affet ....
 
Fare çıngırak ya da başka bir şey olursa, bir kerede bir şeyim var, forumdaki cevaplarımdan ikisi aynı anda tek tıklamayla açılıyor. O zaman tekrarı silmem gerekiyor ...... Bu arada bu yazıya bir bakacağım ....
 

Sepulca, teşekkürler, kodunuz çalışıyor. Sadece ben vardiyaları içindeki yerlerine geri verdim.

Daha uzun zaman dilimlerinde kontrol edeceğim, bu kodun çalıştığından emin olmak için birkaç gün acı çekeceğim.

Neden: