MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 252
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
> err=StringToInteger((string)err)
bu tarihe geçmeli ;-)
başlangıçta err'de, açıkçası GetLastError()'dan bir int aldınız. Hata kodunu okunabilir açıklamaya dönüştürün ErrorDescription(err); #include <stdlib.mqh> etkinleştirilmişse.
ama yazıldığı gibi - bu teneke
PS/ ve MQL programlamayı öğrenmeyin. MQL o 4, o 5 hala belirli bir platform için hedef diller.
lütfen bana bu şekilde yazmanın mümkün olup olmadığını söyleyin. anlaşmalar açmak istemiyor. belki hesaplanan sayıların biçimi yanlıştır? Veya koddaki diğer hatalar?
çift TakeLong (çift shp)
{
int CurrentDayRange=0, FiveDayATR=0, take=0;
çift TP_ATR=0;
//////Pivot girişleri
çift P, S1, R1, S2, R2, S3, R3;
çift LastHigh, LastLow, x;
int counted_bars = IndicatorCounted();
int limit, i;
shp=iYüksek(Symbol(), PERIOD_D1 ,0);
//---- Pivot gösterge hesaplaması
if(sayılan_barlar == 0)
{
x = Dönem();
eğer(x > 240)
dönüş(-1);
}
if(sayılan_barlar < 0)
dönüş(-1);
limit = (Barlar - sayılan_barlar) - 1;
//----
for(i = limit; i >= 0; i--)
{
if(Yüksek[i+1] > SonYüksek)
SonYüksek = Yüksek[i+1];
//----
if(Düşük[i+1] < LastLow)
LastLow=Düşük[i+1];
if(TimeDay(Time[i]) != TimeDay(Zaman[i+1]))
{
P = (SonYüksek + SonDüşük + Kapat[i+1]) / 3;
R1 = (2*P) - SonDüşük;
S1 = (2*P) - SonYüksek;
R2 = P + (SonYüksek - SonDüşük);
S2 = P - (SonYüksek - SonDüşük);
R3 = (2*P) + (SonYüksek - (2*SonDüşük));
S3 = (2*P) - ((2* SonYüksek) - SonDüşük);
LastLow = Open[i];
LastHigh = Açık[i];
}
}
////ATR hesaplaması
(i=1;i<6;i++) için
{ if(iHigh(NULL, PERIOD_D1, i)- iLow(NULL, PERIOD_D1, i)>0) FiveDayATR += (iHigh(NULL, PERIOD_D1, i)-iLow(NULL, PERIOD_D1, i));}
FiveDayATR = NormalizeDouble(FiveDayATR/5,Digits());
CurrentDayRange = (iHigh(NULL, PERIOD_D1, i)-iLow(NULL, PERIOD_D1, i));
if(FiveDayATR-CurrentDayRange>0) TP_ATR=Ask+FiveDayATR-CurrentDayRange; başka TP_ATR=0;
if (Teklif>R1 && TP_ATR==0) take=shp;
yoksa (Teklif<R1 && R1<TP_ATR) almak=R1;
başka al=TP_ATR;
dönüş(al);
}
Önerilen kod bir göstergeye benzer. Ve anlaşmalar bir danışman ya da bir senaryo tarafından açılır. Göstergedeki OrderSend işlevinin çağrılması yasaktır. Gösterge bip sesi çıkarabilir - Uyarı işlevine bir çağrı veya uygun yere bir ses ekleyin
Önerilen kod bir göstergeye benzer. Ve anlaşmalar bir danışman ya da bir senaryo tarafından açılır. Göstergedeki OrderSend işlevinin çağrılması yasaktır. Gösterge bip sesi çıkarabilir - Uyarı işlevine bir çağrı veya uygun yere bir ses ekleyin
bu, OrderSend'de sonucu döndüren TP tanım kodudur. bu karmaşık algoritma olmadan işlemler gönderilir, onunla hiçbir yolu yoktur. TP = TakeLong(SHP); işlevini çağırıyorum.
Hata ayıklamanın birçok yolu vardır - orada bulunduğu tespit edildiğinde bir hatayı bulma süreci. Birincisi F5 - MetsEditor'da hata ayıklamaya başlayın. 2) uygulamayı izlemek için Uyarıları kullanma. 3 ve 4) hata ayıklama bilgilerinin metin etiketlerine ve Yorum işlevine çıktısı. Sizin için uygun bir yol seçin ve bu basit işlevin hatalarını ayıklayın - o zaman bir programcı olacaksınız. Binlerce satırdan oluşan bir program karmaşık olarak kabul edilir.
lütfen bana böyle yazmanın mümkün olup olmadığını söyle. anlaşmalar açmak istemiyor. belki hesaplanan sayıların biçimi yanlıştır? Veya koddaki diğer hatalar?
MathAbs( Close1[i] - Open1[i] ) / Nokta + 1
MathAbs( Close2[i] - Open2[i] ) / Nokta + 1
Tam kodda şöyle görünür:
double Close1 = iClose (Symbol(), 0, i);
double Open1 = iOpen(Symbol(), 0, i);
double Close2 = iClose(Symbol(), 0, i+1);
double Open2 = iOpen(Symbol(), 0, i+1);
MathAbs( Close1[i] - Open1[i] ) / Nokta + 1
MathAbs( Close2[i] - Open2[i] ) / Nokta + 1
if (Close1 < Open1 && Close2 > Open2){
SATIN ALMAK();
}
if (Close1 > Open1 && Close2 < Open2){
SATMAK();
}
Doğru yaptı? Nasıl çalıştırılır?
Demo hesapta denediniz mi? Ne oluyor?
Demo hesapta denediniz mi? Ne oluyor?
Trolün neden her kene üzerinde çalıştığını söyleyebilir misiniz?