[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 106
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
İnsanlar, yardım edin: Danışmanımda, yalnızca önceki mumun en düşük seviyesi önceki 40 mumun tüm en düşük değerlerinden daha düşük olduğunda bir Al pozisyonunun açılmasına dair bir şartım var. Soru: Önceki mumların en düşük seviyelerinin bu sıralaması nasıl uygulanır ve önceki mumun en düşük seviyesinin altında bir düşüş olup olmadığı nasıl anlaşılır? Şimdiden teşekkürler.
Ay teşekkür ederim!)
Mmm... Bir problem var... Veriler her yeni tik ile ve sadece son 30 bar için güncellenmeli... Ama nedense veriler benim için saklanıyor.
Hatayı bulmaya yardım edin!
Black MACD stratejisine dayalı bir Uzman Danışman yazıyorum:
Döviz çifti: herhangi
Zaman aralığı: 15 ve üstü.
Göstergeler: EMA(3) EMA(18), RSI(14), MACD(12,26,9)
MACD göstergesinden sinyal hattını kaldırıyoruz, tüm göstergeleri Kapat fiyat göstergesine uyguluyoruz.
Giriş sinyali satın al: EMA(3) EMA'yı (18) aşağıdan yukarıya doğru keser, MACD'nin pozitif gitmesini bekleyin. RSI(14) 50 seviyesinin üzerindeyse, bir satın alma pozisyonu gireriz. Durdurma kaybı, son yerel minimumda ayarlanır. EMA'nın ters geçişinde ticaretten çıkıyoruz veya kendi yaklaşımımızı kullanıyoruz.
Satış sinyali: Ters durum: EMA(3) geçişi EMA(18) yukarıdan aşağıya, MACD'nin negatif olmasını bekleyin. RSI(14) 50 seviyesinin altındaysa satışa gireriz. Durdurma kaybı, son en yüksek değere ayarlanmıştır.
Kodu derlerken bir parantez eksik diyor. Uzun bir araştırmadan sonra olması gereken yeri bulmuş gibiydim, ancak hatayı düzelttikten sonra 20-30 yeni söve daha verildi. Bana nerede yanlış olduğunu söyle. ))) Kod ekteki dosyadadır.
BlackvMACD.mq4 (5.21 KB) kaldır
Okuyun: https://book.mql4.com/ru/variables/arrays . Üç çift için geçerli olan iki boyutlu bir dizi düzenleyebildiğim ortaya çıktı: double Mas_d[3][2] = {1, 0, 2, 0, 3,0};
şunu akılda tutarak:
Mas_d[1][1] değeri örneğin AUDCAD çiftine karşılık gelir ve Mas_d[1][2] bu çiftin değeridir;
Mas_d[2][1] değeri örneğin AUDCHF çiftine karşılık gelir ve Mas_d[2][2] bu çiftin değeridir;
Mas_d[3][1] değeri örneğin AUDJPY çiftine karşılık gelir ve Mas_d[3][2] bu çiftin değeridir,
aynı zamanda dizi elemanları keneler arasındaki değerlerini korur. Ve sonra ihtiyacım olan kritere göre dizi elemanlarının değerlerini değiştirebileceğim. Ne demek istediğini doğru anladım mı? :)
Evet. Yaklaşım en iyisi olmayabilir, ancak herkes kendisi için seçer. Ve sonra gerekirse yükseltmeler, optimizeler! :))
Şu anda yaklaşımımı modernize ediyorum. Bazı durumlarda uygun değil! :D
Evet. Yaklaşım en uygun olmayabilir, ancak herkes bunu kendisi için seçer. Ve sonra gerekirse yükseltmeler, optimizeler! :))
Şu anda yaklaşımımı modernize ediyorum. Bazı durumlarda uygun değil! :D
Acemiyim ve bir deneme Uzman Danışmanı yazmaya çalıştım, ancak derlerken "'\end_of_program' - bitiş dirseği '}' hatası veriyor C:\Program Files\ForexClub MT4\experts\trsi01.mq4 (30, 3 ) "Yazdıklarımı korkunç olarak anlıyorum, lütfen söyleyin nerede hatalar var?
//+------------------------------------------- --------------------+
//| trsi01.mq4 |
//| Telif Hakkı © 2011, MetaQuotes Yazılım A.Ş. |
//| http://www.metaquotes.net |
//+------------------------------------------- --------------------+
#property telif hakkı "Telif hakkı © 2011, MetaQuotes Software Corp."
#özellik bağlantısı "http://www.metaquotes.net"
çift StopLoss=30;
çift TakeProfit=100;
çift Lot = 0.1;
dönüş(0);
int başlangıç()
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)<30)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Puan,Ask+TakeProfit*Puan);
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)>70)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Puan,Teklif Al-Kar*Puan);
{
dönüş(0);
{
Acemiyim ve bir deneme Uzman Danışmanı yazmaya çalıştım, ancak derlerken "'\end_of_program' - bitiş dirseği '}' hatası veriyor C:\Program Files\ForexClub MT4\experts\trsi01.mq4 (30, 3 ) "Yazdıklarımı korkunç olarak anlıyorum, lütfen söyleyin nerede hatalar var?
//+------------------------------------------- --------------------+
//| trsi01.mq4 |
//| Telif Hakkı © 2011, MetaQuotes Yazılım A.Ş. |
//| http://www.metaquotes.net |
//+------------------------------------------- --------------------+
#property telif hakkı "Telif hakkı © 2011, MetaQuotes Software Corp."
#özellik bağlantısı "http://www.metaquotes.net"
çift StopLoss=30;
çift TakeProfit=100;
çift Lot = 0.1;
dönüş(0);
int başlangıç()
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)<30)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Puan,Ask+TakeProfit*Puan);
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)>70)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Puan,Teklif Al-Kar*Puan);
{
dönüş(0);
{
Hata, ders kitabını baştan sona okumamış olmanızdır. Hiç açtıysanız.
Ancak şu bölümü kaçırdıkları açık: if - else koşullu ifadesi .
Daha da iyisi, ders kitabı kapağını baştan sona okuyun.
Teşekkür ederim, yapacağım. :) Lütfen bana belirli bir para birimi çifti için minimum durdurma kaybının ne olduğunu söyler misiniz? Diyelim ki bir çift EURAUD - burada 100 puandan daha az bir stop loss koyamazsınız, ancak geri kalanı için?
https://book.mql4.com/en/appendix/marketinfo
Örneğin 7 basamaktan ikili bir sayı nasıl oluşturulur? Ve sonra (kolaylık olması için) ondalık sayıya nasıl çevrilir?