[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 922
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım 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
Açık bir siparişin türü nasıl belirlenir?
Sipariş türü()
Ama aslında bir ders kitabıyla başlamanız gerekiyor... :) Ya da en azından MetaEditor'da F1'i kullanın.
OP_BUY - satın alma pozisyonu,
OP_SELL - satış pozisyonu,
OP_BUYLIMIT - belirli bir seviyeye ulaştıktan sonra satın almak için bekleyen bir emir, mevcut fiyat seviyenin üzerinde,
OP_BUYSTOP - belirli bir seviyeye ulaştıktan sonra satın almak için bekleyen bir emir, mevcut fiyat seviyenin altında,
OP_SELLLIMIT - belirli bir seviyeye ulaştıktan sonra bekleyen bir satış emri, mevcut fiyat seviyenin altında,
OP_SELLSTOP - belirtilen seviyeye ulaşıldığında, mevcut fiyat seviyenin üzerindeyken satış için bekleyen bir emir.
Sipariş, OrderSelect() işlevi kullanılarak önceden seçilmelidir.
Kayan nokta değeri, double türünde gerçek bir sayıdır.
Rakamlar yerine int türünde bir değişken kullanın
Örneğin int dg= MarketInfo ( Symbol ( ) , MODE_DIGITS);
datetime time;
//--------------------------------------------------------------- 2 --
int start()
{
int Total;
bool
Ans =false, // Ответ сервера после закрытия
Cls_B=false, // Критерий для закрытия Buy
Cls_S=false, // Критерий для закрытия Sell
Opn_B=false, // Критерий для открытия Buy
Opn_S=false; // Критерий для открытия Sell
//--------------------------------------------------------------- 3 --
// Учёт ордеров
for(int i=OrdersTotal()-1;i>=0;i--)
if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()>1)Total++;
if(Total!=0 || time==Time[1])return;
static int KolBars;
if (Close[0]-Open[0] > Point && Close[1]-Open[1] > Point && Bars == KolBars)
{
KolBars=Bars ; // запоминаем кол-во бар при которых совершались действия
}
// Торговые критерии
// Критерий откр. Buy
Opn_B=true;
//--------------------------------------------------------------- 7 --
if (Opn_B)
{OrderSend(Symbol(),OP_BUY,Lot,Ask,0,0,0);time=Time[1];}
}
Lütfen yardım edin 3. kez rica ediyorum. Yeni bir mum göründüğünde (önceki 2 mumun yeşil olması şartıyla) alış pozisyonu açan ve pozisyonun açıldığı mum kapandığında veya bir sonraki mumun kapanışında pozisyonu kapatan bir temel danışman.
Yukarıda gördükleriniz, her yeni mum çıktığında, açılış kriterlerine tepki vermeden pozisyon açıyor ve bir pozisyonun nasıl kapatılacağı bana ulaşmıyor, ders kitabında ve forumlarda bulamadım.
Kayan nokta değeri, double türünde gerçek bir sayıdır.
Rakamlar yerine int türünde bir değişken kullanın
Örneğin int dg= MarketInfo ( Symbol ( ) , MODE_DIGITS);
Bana şunu yazdılar: "Normalize (NormalizeDouble()), maksimum / minimum lotta bir sınır olup olmadığını kontrol edin, eğer beş basamaklıysa - stop'u ve karı 10 kat artırın."
Belgeler şöyle diyor: "Kayan noktalı bir sayıyı belirtilen doğruluğa yuvarlama. StopLoss, TakeProfit'in hesaplanan değerleri ve ayrıca bekleyen emirlerin açılış fiyatının değerleri, doğrulukla, değeriyle normalleştirilmelidir. hangi önceden tanımlanmış değişken Digits içinde saklanır."
Ders kitabında bulamadım anladığım kadarıyla şu anki fiyatı, StopLoss ve TakeProfit'i NormalizeDouble üzerinden normalleştirmem gerekiyor ---? evet ise, tam olarak nasıl?
çifte değer -- bunun yerine örneğin Ödül koyabilirim
int basamaklar -- ve burada dg değişkeni MarketInfo'ya eşittir ( Symbol ( ) , MODE_DIGITS); ???
Bana şunu yazdılar: "Normalize (NormalizeDouble()), maksimum / minimum lotta bir sınır olup olmadığını kontrol edin, eğer beş basamaklıysa - stop'u ve karı 10 kat artırın."
Belgeler şöyle diyor: "Kayan noktalı bir sayıyı belirtilen doğruluğa yuvarlama. StopLoss, TakeProfit'in hesaplanan değerleri ve ayrıca bekleyen emirlerin açılış fiyatının değerleri, doğrulukla, değeriyle normalleştirilmelidir. hangi önceden tanımlanmış değişken Digits içinde saklanır."
Ders kitabında bulamadım anladığım kadarıyla şu anki fiyatı, StopLoss ve TakeProfit'i NormalizeDouble üzerinden normalleştirmem gerekiyor ---? evet ise, tam olarak nasıl?
çifte değer -- bunun yerine örneğin Ödül koyabilirim
int basamaklar -- ve burada dg değişkeni MarketInfo'ya eşittir ( Symbol ( ) , MODE_DIGITS); ???
int StopLoss=50; // Nokta olarak Kaybı Durdur
int TakeProfit=150; // Puan olarak TakeProfit
int SetOrderDistance=50; // Bekleyen siparişlerin puan olarak verilmesi için mesafe
-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------------------
int pt=MarketInfo(Sembol(), MODE_POINT); // Alıntı para biriminde nokta boyutu
int dg=MarketInfo(Symbol(),MODE_DIGITS); // Enstrüman fiyatındaki ondalık noktadan sonraki basamak sayısı
int StLev=MarketInfo(Symbol(), MODE_STOPLEVEL); // Puan olarak izin verilen minimum zararı durdur/kar al seviyesi
double pa=MarketInfo(Symbol(), MODE_ASK); // Fiyatını sor
double pb=MarketInfo(Symbol(), MODE_BID); // Teklif fiyatı
-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------------------
double slB=NormalizeDouble(pa-StopLoss*pt, dg); // Buy pozisyonu için StopLoss fiyat seviyesinin normalleştirilmesi
double tpB=NormalizeDouble(pa+TakeProfit*pt, dg); // Alış pozisyonu için TakeProfit fiyat seviyesinin normalleştirilmesi
double slS=NormalizeDouble(pb+StopLoss*pt, dg); // Bir Satış pozisyonu için StopLoss fiyat seviyesinin normalleştirilmesi
double tpS=NormalizeDouble(pb-TakeProfit*pt, dg); // Bir Satış pozisyonu için TakeProfit fiyat seviyesinin normalleştirilmesi
double SetB=NormalizeDouble(pa+SetOrderDistance*pt, dg); // Bekleyen bir Satın Alma emri verme fiyatının normalleştirilmesi
double SetS=NormalizeDouble(pb-SetOrderDistance*pt, dg); // Bekleyen bir Satış emri verme fiyatının normalleştirilmesi
double slBS=NormalizeDouble(SetB-StopLoss*pt, dg); // Bekleyen Buy emrinin StopLoss fiyat seviyesinin normalleştirilmesi
double tpBS=NormalizeDouble(SetB+TakeProfit*pt, dg); // Bekleyen bir Satın Alma emrinin TakeProfit fiyat seviyesinin normalleştirilmesi
double slSS=NormalizeDouble(SetS+StopLoss*pt, dg); // Bekleyen bir Satış emrinin StopLoss fiyat seviyesinin normalleştirilmesi
double tpSS=NormalizeDouble(SetS-TakeProfit*pt, dg); // Bekleyen bir Satış emrinin TakeProfit fiyat seviyesinin normalleştirilmesi
-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------
Anlamak... :)
Ve StopLevel'in varlığını da unutmayın - int StLev=MarketInfo(Symbol(), MODE_STOPLEVEL);
Bu değerden daha az olmayacak şekilde, duraklar ve kalkışlar için minimum mesafeyi kontrol edin.
int StopLoss=50; // Nokta olarak Kaybı Durdur
int TakeProfit=150; // Puan olarak TakeProfit
int SetOrderDistance=50; // Bekleyen siparişlerin puan olarak verilmesi için mesafe
-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------------------
int pt=MarketInfo(Sembol(), MODE_POINT); // Alıntı para biriminde nokta boyutu
int dg=MarketInfo(Symbol(),MODE_DIGITS); // Enstrüman fiyatındaki ondalık noktadan sonraki basamak sayısı
int StLev=MarketInfo(Symbol(), MODE_STOPLEVEL); // Puan olarak izin verilen minimum zararı durdur/kar al seviyesi
double pa=MarketInfo(Symbol(), MODE_ASK); // Fiyatını sor
double pb=MarketInfo(Symbol(), MODE_BID); // Teklif fiyatı
-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------------------
double slB=NormalizeDouble(pa-StopLoss*pt, dg); // Buy pozisyonu için StopLoss fiyat seviyesinin normalleştirilmesi
double tpB=NormalizeDouble(pa+TakeProfit*pt, dg); // Alış pozisyonu için TakeProfit fiyat seviyesinin normalleştirilmesi
double slS=NormalizeDouble(pb+StopLoss*pt, dg); // Bir Satış pozisyonu için StopLoss fiyat seviyesinin normalleştirilmesi
double tpS=NormalizeDouble(pb-TakeProfit*pt, dg); // Bir Satış pozisyonu için TakeProfit fiyat seviyesinin normalleştirilmesi
double SetB=NormalizeDouble(pa+SetOrderDistance*pt, dg); // Bekleyen bir Satın Alma emri verme fiyatının normalleştirilmesi
double SetS=NormalizeDouble(pb-SetOrderDistance*pt, dg); // Bekleyen bir Satış emri verme fiyatının normalleştirilmesi
double slBS=NormalizeDouble(SetB-StopLoss*pt, dg); // Bekleyen bir Buy emrinin StopLoss fiyat seviyesinin normalleştirilmesi
double tpBS=NormalizeDouble(SetB+TakeProfit*pt, dg); // Bekleyen bir Satın Alma emrinin TakeProfit fiyat seviyesinin normalleştirilmesi
double slSS=NormalizeDouble(SetS+StopLoss*pt, dg); // Bekleyen bir Satış emrinin StopLoss fiyat seviyesinin normalleştirilmesi
double tpSS=NormalizeDouble(SetS-TakeProfit*pt, dg); // Bekleyen bir Satış emrinin TakeProfit fiyat seviyesinin normalleştirilmesi
-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------
Anlamak... :)
Ve StopLevel'in varlığını da unutmayın - int StLev=MarketInfo(Symbol(), MODE_STOPLEVEL);
Bu değerden daha az olmayacak şekilde, duraklar ve kalkışlar için minimum mesafeyi kontrol edin.
Çok teşekkürler!!! Bunu halledeceğim! )
Windows'u değiştirdi. Uyarı penceresi açılmayı durdurdu. sesli bir bildirim var, bir günlük girişi var, ancak kayan pencere açılmıyor.
Terminali temizledim, her şeyi yeniden derledim. Nedeni ne olabilir?
Bir fonksiyon nasıl oluşturulur ve çağrılır?
Bir kez daha tekrar ediyorum - ders kitabını okuyun , materyali inceleyin ... :)