Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Ben buna kaynattım...ama bekle...
eğer bu sadece yüksek bir nokta bulmak için bu çubuğun 3,5 ile çarpılan basit hareketli ortalamasını kullanıyorsa. Noktanın buna ulaşması nasıl mümkün olabilir? Aynı çubuktan hesaplanan hat değeri, sinyal vermek için ona dokunmak zorunda değil mi? Çubuk yükseldikçe kenar çizgisi de yükselir???
1 bardan daha fazla hesaplanırsa hareketli ortalama yani satır 1 değer ve fiyat başka olabilir
Üst çizginin fiyata yakın olup olmadığını bilmek istiyorsanız, aralarındaki farkın küçük olup olmadığını öğrenmenin bir yolu (diyelim ki 2 puan).
Fiyatın çizginin altında veya çizginin üstünde olması umurumda değil (ki bu iyi bir fikir değil). Benim için 2 puan mesafe, hepsi bu. yani fark
üst - Yüksek size farkı verir ama puan olarak vermez (0.0004 veya -0.0004 gibi bir şeydir). Farkın pozitif olduğundan emin olmak için mutlak (pozitif) değeri döndüren MathAbs fonksiyonunu kullanıyoruz. Şimdi 2 puandan az olup olmadığını kontrol etmeliyiz. Ayrılmış kelime Noktası , fiyat 1 pip arttığında değeri döndürür. Her çiftte farklıdır.
Hepsini bir araya getirmek
if (MathAbs(upper - High) < 2*Point) , farkın 2 pipten az olması ve bizim için yeterince yakın olması anlamına gelir.
Aslında Yüksek'i kullanmak iyi değil, çünkü Yüksek belki yukarıda ama şu anki fiyat çok uzak. High yerine Ask kullanmalıyız (göstergede Close[x] kullanmalıyız)
Fiyatın çizginin üzerinde olduğundan emin olmak için bunu yapabiliriz
if ((Ask > upper) && (Ask - upper < 2 * Point))
.....(alert or open a trade)
[/PHP]bir çok soruma cevap vermekte çok iyisin umarım seni yormuyorumdur Öğrenmeye hevesliyim.
Mutlak değeri anlıyorum. Acaba kapanış yerine sormayı kullanmak neyi değiştirirdi? yakın kullanmak iyi olmaz mı? yoksa çok fark eder mi? hala kafamı karıştıran tek şey ikinci koşulun 2* puanlık tarafı. Puan 2 ile çarpılmaz mı? '*' sembolünü yanlış mı yorumluyorum yoksa bu çarpma sembolü mü?
Ask-upper'ın üst satır ile mevcut talep değeri arasındaki farkı verdiğini görüyorum. ama noktayı 2 ile çarparak mı? Bunun neyle sonuçlanacağından emin değilim, karşılaştırma için kullanılabilir.
Bunu, yalnızca filtrelenmiş satın alma toleransımın altında sinyal oluştuğunda satın almalara izin vermek için yapabilir miyim?
[php]
dış çift uzun menzilli = 25; //--alışverişe izin verilmeden önce üst bant çizgisine yaklaşmaya izin verilen yakınlık
dış çift kısa mesafe = 20; //--satışlara izin verilmeden önce alt bant çizgisine yaklaşmaya izin verilen yakınlık
// GİRİŞ
if(toplam < 2 || isNewSumbol(Symbol())) // if koşulunu da değiştirdim: toplam<1 (veya BanAway diğer adıyla cucurucu)
{
double HedgeLots = (HedgePercent/100)*Lots; // Hedge edilen pozisyon için Lotları hesaplar
if(isCrossed == 1 && Sor < üst-uzun menzilli)
{
if(UseStopLoss)
bilet=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Puan,Ask+TakeProfit*Puan,yorum,MAGICMA,0,Green);
başka
bilet=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Puan,yorum,MAGICMA,0,Yeşil);
if(bilet>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SATIN AL emri açıldı : ",OrderOpenPrice());
}
else Print("SATIN AL emri açılırken hata oluştu : ",GetLastError());bir şeyi kaçırıyorsun. Point olayını anlamak için şunu hayal edin
USDJPY'de fiyat 114.95'tir ve EURUSD'de fiyat 1.2773'tür.
USDJPY'de Ask - üst şöyle olacaktır: 114.95 - 114.93 = 0.02
ve EURUSD'de fiyat 1.2773 - 1.2771 = 0.0002 olacaktır.
Her ikisi de 2 puan ama farklı hassasiyette bu yüzden USDJPY'de 2'yi 0,01 ile çarpmamız gerekiyor ve EURUSD'de bunu 0,0001 ile çarpmamız gerekiyor ve her çiftte bu tam olarak Point'e eşit.
1 bardan daha fazla hesaplanırsa hareketli ortalama yani satır 1 değer ve fiyat başka olabilir
kesinlikle! nasıl sadece bir çubuğun ortalaması olabilir?
int x = 0;
double middle2= iMA(NULL, 0, back, 0, MODE_SMA, PRICE_TYPICAL, x);// only used to calculate outer bands
double avg;
avg = findAvg(back, x);
double upper = middle2 + (3.5*avg);
double lower = middle2 - (3.5*avg); [/PHP]
I don't see how this works....also the compiler say, 'findAvg' - function is not defined
it's looking for the shift value x which is zero so that is only going to be the current bar right? So what is it averaging?
ok let me see what might be...if i'm telling it to go 'back' 300 periods that is what it's averaging is 300 periods. ok i get it now i think....
now about the undefined function error? what do I do about that? just get rid of it as unnecessary?
[PHP]//----------channel filter
int x = 0;
double middle2= iMA(NULL, 0, back, 0, MODE_SMA, PRICE_TYPICAL, x);// only used to calculate outer bands
double avg;
avg = (back, x);
double upper = middle2 + (3.5*avg);
double lower = middle2 - (3.5*avg);bir şeyi kaçırıyorsun. Point olayını anlamak için şunu hayal edin
USDJPY'de fiyat 114.95'tir ve EURUSD'de fiyat 1.2773'tür.
USDJPY'de Ask - üst şöyle olacaktır: 114.95 - 114.93 = 0.02
ve EURUSD'de fiyat 1.2773 - 1.2771 = 0.0002 olacaktır.
Her ikisi de 2 puan ama farklı hassasiyette bu yüzden USDJPY'de 2'yi 0,01 ile çarpmamız gerekiyor ve EURUSD'de bunu 0,0001 ile çarpmamız gerekiyor ve her çiftte bu tam olarak Point'e eşit.tamam sorunu görüyorum...yapmak istediğim şey, üst ve alt çizgilere yakınlığa dayalı bir bariyer oluşturmak, bunun ötesinde ticarete izin verilmeyecek.
-yani önce satırın mevcut değerini alıyorum.
-sonra 1=1 pip hareket olarak düşündüğüm bir tamsayı olarak takas edilemez olarak tanımlamak istediğim mesafeyi ekliyorum veya çıkarıyorum.
-o zaman karşılaştırma koşulunu yapmak için her bir tik için fiyatın nerede olduğu değerini almam gerekiyor
öyleyse bu satır 'price_Typical' dışında bir şey mi olmalı?
double middle2= iMA(NULL, 0, back, 0, MODE_SMA, PRICE_TYPICAL, x);// only used to calculate outer bands
Farklı hassasiyetlerin bir soruna neden olmasını nasıl önleyeceğimden emin değilim. Tek yapmak istediğim, fiyatın hareketini, 'bu seviyenin üzerinde uzun işlem yapma' veya 'bu seviyenin altında kısa işlem yapma' belirleyecek olan çizginin hareketine göre karşılaştırmak..
Beynimin lapaya dönüştüğü bir molaya hazırım.
PRICE_TYPICAL'in bununla hiçbir ilgisi yok. MQL4 yardımında bununla ilgili okuyabilirsiniz
fiyat ve hat arasındaki farkı bulmak için tek yapmanız gereken, birini diğerinden çıkarmak. Dediğim gibi, sorun şu ki bazen 0.0006 ve bazen 0.06 elde ediyorsunuz ve bu Nokta çözüyor.
(Şimdi kapatmam gerekiyor, yarın devam edebiliriz)
bir şeyi kaçırıyorsun. Point olayını anlamak için şunu hayal edin
USDJPY'de fiyat 114.95'tir ve EURUSD'de fiyat 1.2773'tür.
USDJPY'de Ask - üst şöyle olacaktır: 114.95 - 114.93 = 0.02
ve EURUSD'de fiyat 1.2773 - 1.2771 = 0.0002 olacaktır.
Her ikisi de 2 puan ama farklı hassasiyette bu yüzden USDJPY'de 2'yi 0,01 ile çarpmamız gerekiyor ve EURUSD'de bunu 0,0001 ile çarpmamız gerekiyor ve her çiftte bu tam olarak Point'e eşit.yani nokta, gereken farklı hassasiyetten bağımsız olarak her çiftte pip hareketini izlemek gibidir?
PRICE_TYPICAL'in bununla hiçbir ilgisi yok. MQL4 yardımında bununla ilgili okuyabilirsiniz
fiyat ve hat arasındaki farkı bulmak için tek yapmanız gereken, birini diğerinden çıkarmak. Dediğim gibi, sorun şu ki bazen 0.0006 ve bazen 0.06 elde ediyorsunuz ve bu Nokta çözüyor.
(Şimdi kapatmam gerekiyor, yarın devam edebiliriz)sabrınız ve teşvikiniz için çok teşekkür ederim
Yaptığım bu....
double upLevel = iCustom(NULL,TF, "Trend Bands v2", back, 0, 0);
double LowLevel = iCustom(NULL,TF, "Trend Bands v2", back, 2, 0);
// ENTRY
if(total < 2 || isNewSumbol(Symbol())) //I have modified the if condition too: it was total<1 (orBanAway aka cucurucu)
{
double HedgeLots = (HedgePercent/100)*Lots; //calculates the Lots for the hedged position
if(isCrossed == 1 && Ask < upLevel-longrange)
{
if(UseStopLoss)
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,comment,MAGICMA,0,Green);
else
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,comment,MAGICMA,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
//###################################################################### the added code starts here
if(UseStopLoss)
ticket=OrderSend(Symbol(),OP_SELL,HedgeLots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,comment,MAGICMA,0,Red);
else
ticket=OrderSend(Symbol(),OP_SELL,HedgeLots,Bid,3,0,Bid-TakeProfit*Point,comment,MAGICMA,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
}
else Print("Error opening SELL order : ",GetLastError());
//###################################################################### ends here
return(0);
}
if(isCrossed == 2 && Ask > LowLevel + shortrange)
{
if(UseStopLoss)
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,comment,MAGICMA,0,Red);
else
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,comment,MAGICMA,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
}
else Print("Error opening SELL order : ",GetLastError());
//###################################################################### the added code starts here
if(UseStopLoss)
ticket=OrderSend(Symbol(),OP_BUY,HedgeLots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,comment,MAGICMA,0,Green);
else
ticket=OrderSend(Symbol(),OP_BUY,HedgeLots,Ask,3,0,Ask+TakeProfit*Point,comment,MAGICMA,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
//###################################################################### ends here
return(0);
}
return(0);
}
return(0);
}
return(0);
}
}
//+------------------------------------------------------------------+[/PHP]
this is what I got from the tester....
[PHP]2006.06.30 11:18:09 2006.06.06 14:00 Trend Bands v2 EURUSD,M30: Alert: EURUSD 30 reach lower edge
2006.06.30 11:18:09 2006.06.06 12:14 Trend Bands v2 EURUSD,M30: Alert: EURUSD 30 reach lower edge
2006.06.30 11:18:09 2006.06.06 10:26 Trend Bands v2 EURUSD,M30: Alert: EURUSD 30 reach lower edge
2006.06.30 11:18:09 2006.06.05 22:47 Trend Bands v2 EURUSD,M30: Alert: EURUSD 30 reach lower edge
2006.06.30 11:18:09 2006.06.05 09:00 Trend Bands v2 EURUSD,M30: Alert: EURUSD 30 reach upper edge
2006.06.30 11:18:09 2006.06.05 08:41 Trend Bands v2 EURUSD,M30: Alert: EURUSD 30 reach upper edge
2006.06.30 11:18:09 2006.06.05 07:30 Trend Bands v2 EURUSD,M30: Alert: EURUSD 30 reach upper edge
2006.06.30 11:18:09 2006.06.05 07:29 Trend Bands v2 EURUSD,M30: Alert: EURUSD 30 reach upper edge
2006.06.30 11:18:08 2006.06.02 19:55 Trend Bands v2 EURUSD,M30: Alert: EURUSD 30 reach upper edge
2006.06.30 11:18:08 2006.06.01 11:27 Trend Bands v2 EURUSD,M30: Alert: EURUSD 30 reach lower edge
2006.06.30 11:18:08 2006.06.01 06:45 Trend Bands v2 EURUSD,M30: Alert: EURUSD 30 reach lower edge
2006.06.30 11:18:08 2006.06.01 04:00 Trend Bands v2 EURUSD,M30: Alert: EURUSD 30 reach lower edge
2006.06.30 11:18:08 2006.06.01 02:44 Trend Bands v2 EURUSD,M30: Alert: EURUSD 30 reach lower edge
2006.06.30 11:18:08 2006.06.01 00:37 Trend Bands v2 EURUSD,M30: Alert: EURUSD 30 reach lower edge
2006.06.30 11:18:00 2006.05.31 04:00 Trend Bands v2 EURUSD,M30: loaded successfully
2006.06.30 11:18:00 EMA_CROSSv5 EURUSD,M5: Tester comment: ----------------------------------------
TakeProfit=10 | TrailingStop=20 | StopLoss=20 | UseStopLoss=False
----------------------------------------
immediate_trade=True | reversal=False
----------------------------------------
Lots=1 | MM=True | Risk=10%
----------------------------------------
2006.06.30 11:18:00 EMA_CROSSv5 inputs: TakeProfit=10; TrailingStop=20; StopLoss=20; ShortEma=1; LongEma=5; Lots=1; HedgePercent=1; StartHour=0; StopHour=23; Risk=10; MAGICMA=20060301; longrange=1; shortrange=1; back=30; TF=30;
2006.06.30 11:17:35 EMA_CROSSv5: loaded successfully
rapor, ayarları aldığını ancak boş olduğunu gösteriyor ....
belli ki işlemlere izin vermiyor ama TÜMÜ? Sadece uzun ve kısa aralıkları 1 olarak ayarladığımda buna inanmakta zorlanıyorum!! Elbette bu aralıkta BAZI ticaret sinyalleri var mıydı? Bunun amaçladığım şeyi yaptığını sanmıyorum.
Trend bantları göstergesini daha esnek olması için değiştirdim
extern int period = 34;
extern int factor = 8;
avg = findAvg(period, x);
upper[x] = middle2 + (factor*avg);
lower[x] = middle2 - (factor*avg);[/PHP]
then i did this to the EA
//---- Trend Bands v2 and Filter Parameters
extern double back = 300; //--how many periods back for the custom indicator to average
extern double bandwidth = 6; //--how wide the trend bands are
extern double TF = 30; //--which bar period for the custom indicator to use
//----------channel filter
double upLevel = iCustom(NULL,TF, "Trend Bands v3", back, bandwidth, 0, 0);
double LowLevel = iCustom(NULL,TF, "Trend Bands v3", back, bandwidth, 2, 0);I got this from the tester...(slightly abbreviated report)..
[PHP]2006.06.30 12:10:38 2006.06.29 23:59 Trend Bands v3 EURUSD,M30: removed
2006.06.30 12:10:38 2006.06.29 20:21 EMA_CROSSv5 EURUSD,M5: Error opening BUY order : 131
2006.06.30 12:10:38 2006.06.29 20:21 EMA_CROSSv5 EURUSD,M5: Error opening SELL order : 131
2006.06.30 12:10:38 2006.06.29 20:20 EMA_CROSSv5 EURUSD,M5: Error opening BUY order : 131
2006.06.30 12:10:38 2006.06.29 20:20 EMA_CROSSv5 EURUSD,M5: Error opening SELL order : 131
2006.06.30 12:10:38 2006.06.29 20:16 EMA_CROSSv5 EURUSD,M5: Error opening BUY order : 131
2006.06.30 12:10:38 2006.06.29 20:16 EMA_CROSSv5 EURUSD,M5: Error opening SELL order : 131
2006.06.30 12:10:38 2006.06.29 20:15 EMA_CROSSv5 EURUSD,M5: Error opening BUY order : 131
2006.06.30 12:10:38 2006.06.29 20:15 EMA_CROSSv5 EURUSD,M5: Error opening SELL order : 131
2006.06.30 12:10:38 2006.06.29 20:12 EMA_CROSSv5 EURUSD,M5: Error opening BUY order : 131
2006.06.30 12:10:38 2006.06.29 20:12 EMA_CROSSv5 EURUSD,M5: Error opening SELL order : 131
2006.06.30 12:10:38 2006.06.29 20:04 EMA_CROSSv5 EURUSD,M5: Error opening BUY order : 131
2006.06.30 12:10:38 2006.06.29 20:04 EMA_CROSSv5 EURUSD,M5: Error opening SELL order : 131
2006.06.30 12:10:38 2006.06.29 20:03 EMA_CROSSv5 EURUSD,M5: Error opening BUY order : 131
2006.06.30 12:10:38 2006.06.29 20:03 EMA_CROSSv5 EURUSD,M5: Error opening SELL order : 131
2006.06.30 12:10:38 2006.06.29 20:00 EMA_CROSSv5 EURUSD,M5: Error opening BUY order : 131
2006.06.30 12:10:38 2006.06.29 20:00 EMA_CROSSv5 EURUSD,M5: Error opening SELL order : 131
2006.06.30 12:10:38 2006.06.29 20:00 Trend Bands v3 EURUSD,M30: Alert: EURUSD 30 reach upper edge
2006.06.30 12:10:38 2006.06.29 19:59 EMA_CROSSv5 EURUSD,M5: Error opening BUY order : 131
2006.06.30 12:10:38 2006.06.29 19:59 EMA_CROSSv5 EURUSD,M5: Error opening SELL order : 131
2006.06.30 12:10:38 2006.06.29 19:32 EMA_CROSSv5 EURUSD,M5: Error opening BUY order : 131
2006.06.30 12:10:38 2006.06.29 19:32 EMA_CROSSv5 EURUSD,M5: Error opening SELL order : 131
2006.06.30 12:10:38 2006.06.29 19:25 EMA_CROSSv5 EURUSD,M5: Error opening BUY order : 131
2006.06.30 12:10:38 2006.06.29 19:25 EMA_CROSSv5 EURUSD,M5: Error opening SELL order : 131
2006.06.30 12:10:38 2006.06.29 19:21 EMA_CROSSv5 EURUSD,M5: Error opening BUY order : 131
2006.06.30 12:10:38 2006.06.29 19:21 EMA_CROSSv5 EURUSD,M5: Error opening SELL order : 131
2006.06.30 12:10:38 2006.06.29 19:20 EMA_CROSSv5 EURUSD,M5: Error opening BUY order : 131
2006.06.30 12:10:38 2006.06.29 19:20 EMA_CROSSv5 EURUSD,M5: Error opening SELL order : 131
2006.06.30 12:10:38 2006.06.29 19:09 EMA_CROSSv5 EURUSD,M5: Error opening BUY order : 131
2006.06.30 12:10:38 2006.06.29 19:09 EMA_CROSSv5 EURUSD,M5: Error opening SELL order : 131
2006.06.30 12:10:38 2006.06.29 19:08 EMA_CROSSv5 EURUSD,M5: Error opening BUY order : 131
2006.06.30 12:10:38 2006.06.29 19:08 EMA_CROSSv5 EURUSD,M5: Error opening SELL order : 131
2006.06.30 12:10:38 2006.06.29 19:06 EMA_CROSSv5 EURUSD,M5: Error opening BUY order : 131
2006.06.30 12:10:38 2006.06.29 19:06 EMA_CROSSv5 EURUSD,M5: Error opening SELL order : 131
2006.06.30 12:10:38 2006.06.29 18:35 Trend Bands v3 EURUSD,M30: Alert: EURUSD 30 reach upper edge
2006.06.30 12:10:38 2006.06.29 18:16 EMA_CROSSv5 EURUSD,M5: Error opening SELL order : 131
2006.06.30 12:10:38 2006.06.29 18:16 EMA_CROSSv5 EURUSD,M5: Error opening BUY order : 131
2006.06.30 12:10:38 2006.06.29 18:15 EMA_CROSSv5 EURUSD,M5: Error opening BUY order : 131
2006.06.30 12:10:38 2006.06.29 18:15 EMA_CROSSv5 EURUSD,M5: Error opening SELL order : 131
2006.06.30 12:10:37 2006.06.29 00:00 Trend Bands v3 EURUSD,M30: loaded successfully
2006.06.30 12:10:37 EMA_CROSSv5 EURUSD,M5: Tester comment: ----------------------------------------
TakeProfit=10 | TrailingStop=20 | StopLoss=20 | UseStopLoss=False
----------------------------------------
immediate_trade=True | reversal=False
----------------------------------------
Lots=1 | MM=True | Risk=10%
----------------------------------------
2006.06.30 12:10:37 EMA_CROSSv5 inputs: TakeProfit=10; TrailingStop=20; StopLoss=20; ShortEma=1; LongEma=5; Lots=1; HedgePercent=1; StartHour=0; StopHour=23; Risk=10; MAGICMA=20060301; back=300; bandwidth=6; TF=30;
Bundan sonra bant genişliğini 20'ye çıkardım, böylece bantlara asla dokunmaz...hala bana '131 açılırken hata veriyor'
ERR_INVALID_TRADE_VOLUME 131 Geçersiz işlem hacmi .
bunda ne var