ICözel işlev - sayfa 22

 
SantaClaus:
İngilizce benim ana dilim değil ama gerçekten sorumun bu kadar yanlış olduğunu düşünmedim. "Kelimeleri işaretlemek" yerine sorunuma bir çözüm bulalım. Soruyu tekrar denerim.

EA'mın göstergemden basit yerleştirmeleri ve çağrıları tanımasının en iyi yolu nedir?

Açıkçası kodum işe yaramadı ve bana söylediğiniz gibi "1" i "0" olarak değiştirmeye çalıştım.

Burada çalışmayan kodunuzu gönderin (ekleyin) - test ettiğiniz ve şimdiye kadar yazdığınız mql dosyaları

 

Bu benim özel kodum, bu yüzden paylaşmak istemiyorum. Ama sağladığım koddan başka ne görmeniz gerekiyor?

Unuttuğum bir şey mi var?

 
SantaClaus:
Bu benim özel kodum, bu yüzden paylaşmak istemiyorum. Ama sağladığım koddan başka ne görmeniz gerekiyor? Unuttuğum bir şey mi var?

Yani birisinin size kodlamada yardımcı olmasını istiyorsunuz, ancak kodun hata kontrolü için gösterilmesini istemiyorsunuz, bunun yerine aldığınız tüm tavsiyelerin binlerce ve binlerce başka kodda çalıştığını iddia ediyorsunuz. , senin için çalışmıyor mu?

TAMAM. Şimdi pozisyonunuzu anlıyorum. Kodlamanda iyi şanslar

mutlu ticaret

 

Çalışmayan özel kod? İlginç

 

İki mesajım bilmediğim bir nedenle silindi.

ancak, karşılaştığım sorun, okumaya çalıştığımı rahatsız eden başka arabelleklere sahip olmamdı. Artık çalışan bir çözümüm var.

 

Lütfen biraz yardıma ihtiyacım var.. icustom içeren bir fonksiyona soneki(mikro) olan sembol parametrelerini nasıl gönderirsiniz? eğer bir fonksiyon kullanmıyorsam, sembol adını çift tırnak içine alırım ve çalışır, örneğin icustom("EURUSDmicro",0,channel-signal",2,1) ama bir fonksiyon kullandığımda çift tırnaklar geçmiyor .lütfen ne demek istediğimi aşağıdaki koda bakın

geçersiz OnTick()

{

CalcDisplay("EURUSDmicro"); //--------FONKSİYON ÇAĞRISI-------

}

void CalcDisplay(string TxtCurrency) //--------FUNCTION-------

{

double Value=icustom(TxtCurrency,0,channel-signal",2,1);

...

...

..

}

 
Richard Sidric:
Lütfen biraz yardıma ihtiyacım var.. icustom içeren bir fonksiyona soneki(mikro) olan sembol parametrelerini nasıl gönderirsiniz? eğer bir fonksiyon kullanmıyorsam, sembol adını çift tırnak içine alırım ve çalışır, örneğin icustom("EURUSDmicro",0,channel-signal",2,1) ama bir fonksiyon kullandığımda çift tırnaklar geçmiyor .lütfen ne demek istediğimi aşağıdaki koda bakın

geçersiz OnTick()

{

CalcDisplay("EURUSDmicro"); //--------FONKSİYON ÇAĞRISI-------

}

void CalcDisplay(string TxtCurrency) //--------FUNCTION-------

{

double Value=icustom(TxtCurrency,0,channel-signal",2,1);

...

...

..

}

Alıntı yapmanıza gerek yok. Tek gereken bunun bir dizi olmasıdır.

_____

Not: iCiustom aramanızda bir alıntı eksik. Şimdi böyle:

double Value=icustom(TxtCurrency,0,channel-signal",2,1);

ve şöyle olmalı:

double Value=icustom(TxtCurrency,0,"channel-signal",2,1);

 

hepinize merhaba, aşağıda ekli bir t4 göstergesi var sadece bunu robo ticareti ve robo ticareti için nasıl kullanabileceğimi bilmek istiyorum veya ea aynı mı değil mi

(ben zaten kullanıyorum manuel alım satımı bilgisayar başında oturuyorum ama)

Bunu otomatik ticaret için kullanırsam, lütfen bana nasıl yardım edin, şimdiden teşekkürler

//------------------------------------------------ ------------------

// mony tarafından orijinal ised ve ilk uygulama

// mladen tarafından tris versiyonu

//------------------------------------------------ ------------------

#özellik telif hakkı "mony & mladen"

#özellik bağlantısı "www.forex.tsd.com adresinde yapılmıştır"

#özellik göstergesi_chart_window

#özellik göstergesi_buffers 5

#özellik göstergesi_renk1 OrtaMavi

#özellik göstergesi_renk2 Kırmızı

#özellik göstergesi_renk3 OrtaMavi

#özellik göstergesi_color4 Kırmızı

#özellik göstergesi_renk5 Kırmızı

#özellik göstergesi_width3 3

#özellik göstergesi_width4 3

#özellik göstergesi_width5 3

#mülkiyet katı

//

//

//

//

//

//

enum trEkran

{

dis_line, // Renkli satırı göster

dis_bars, // Renkli çubukları göster

dis_both // Hem renkli çizgileri hem de çubukları göster

};

harici int CCIperiod = 3; // CCİ dönemi

extern int ATRperiod = 300; // ATR dönemi

harici ENUM_APPLIED_PRICE application_price = PRICE_TYPICAL; // Kullanılacak fiyat

extern enDisplay DisplayType = dis_line; // Ekran tipi

extern bool alertsOn = true; // Uyarıları aç

extern bool alertsOnCurrent = false; // Mevcut (hala açık) çubukta uyarılar

harici bool uyarılarıMesaj = true; // Uyarılar açılır mesajı göstermelidir

harici bool uyarılarıSound = true; // Uyarılar ses çalmalıdır

harici bool uyarılarıNotify = true; // Uyarılar bildirim göndermelidir

harici bool uyarılarıEmail = false; // Uyarılar enail göndermelidir

harici string soundFile = "o.wma"; // Ses dosyası t sesli uyarılar için kullanılır

çift TrLine[];

çift TrendDowna[];

çift TrendDownb[];

çift HistUp[];

çift HistDn[];

çift eğilim[];

//------------------------------------------------ ------------------

//

//------------------------------------------------ ------------------

//

//

//

//

//

int init()

{

Gösterge Tamponları(6);

int styleLine = DRAW_LINE; if (DisplayType==dis_bars) styleLine=DRAW_NONE;

int styleBars = DRAW_HISTOGRAM; if (DisplayType==dis_line) styleBars=DRAW_NONE;

SetIndexBuffer(0, HistUp); SetIndexStyle(0,styleBars);

SetIndexBuffer(1, HistDn); SetIndexStyle(1,styleBars);

SetIndexBuffer(2, TrLine); SetIndexStyle(2,styleLine);

SetIndexBuffer(3, TrendDowna); SetIndexStyle(3,styleLine);

SetIndexBuffer(4, TrendDownb); SetIndexStyle(4,styleLine);

SetIndexBuffer(5, eğilim);

dönüş(0);

}

int deinit(){ dönüş (0); }

//------------------------------------------------ ------------------

//

//------------------------------------------------ ------------------

//

//

//

//

//

int başlangıç()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Barlar-sayılan_barlar,Barlar-1);

//

//

//

//

//

if (trend[limit]==-1) CleanPoint(limit,TrendDowna,TrendDownb);

for(int i=limit; i >= 0; i--)

{

double cciTrendNow = iCCI(NULL, 0, CCIperiod, application_price, i);

if (cciTrendNow >= 0)

{

TrLine = NormalizeDouble(Düşük - iATR(NULL, 0, ATRperiod, i),Digits);

if (i<(Bars-1) && TrLine < TrLine) TrLine = TrLine;

}

if (cciTrendNow <= 0)

{

TrLine = NormalizeDouble(Yüksek + iATR(NULL, 0, ATRperiod, i),Digits);

if (i TrLine) TrLine = TrLine;

}

//

//

//

//

//

TrendDowna = BOŞ_VALUE;

TrendDownb = BOŞ_VALUE;

if (i<(Bar-1))

{

eğilim = eğilim;

if (TrLine> TrLine) trendi = 1;

if (TrLine< TrLine) trendi =-1;

if (trend == -1) PlotPoint(i,TrendDowna,TrendDownb,TrLine);

if (trend == 1) { HistUp = Yüksek; HistDn = Düşük; }

if (trend == -1) { HistDn = Yüksek; HistUp = Düşük; }

}

}

ManageAlerts();

dönüş(0);

}

//+------------------------------------------- --------------------

//|

//+------------------------------------------- --------------------

//

//

//

//

//

void managerAlerts()

{

if (uyarılarAçık)

{

int hangiBar = 1; if (alertsOnCurrent) hangiBar = 0;

if (trend[hangiBar] != trend[hangiBar+1])

{

if (trend[hangiBar] == 1) doAlert(hangiBar,"yukarı");

if (trend[hangiBar] ==-1) doAlert(hangiBar,"aşağı");

}

}

}

//

//

//

//

//

void doAlert(int forBar, string doWhat)

{

statik dize öncekiAlert="hiçbir şey";

statik tarihsaat öncekiSaat;

dize mesajı;

if (previousAlert != doWhat || öncekiZaman != Zaman[Bar için]) {

öncekiAlert = doWhat;

öncekiZaman = Zaman[Bar için];

//

//

//

//

//

"+TimeToStr(TimeLocal(),TIME_SECONDS)+" konumunda ileti = Symbol()+" SP MY trendi "+doWhat;

if (alertsMessage) Alert(mesaj);

if (alertsNotify) SendNotification(mesaj);

if (alertsEmail) SendMail(Symbol()+" SP MY",mesaj);

if (alertsSound) PlaySound(soundFile);

}

}

//------------------------------------------------ -------------------

//

//------------------------------------------------ -------------------

//

//

//

//

//

void CleanPoint(int i,double& first[],double& second[])

{

if (i>=Bars-3) döner;

if ((ikinci != BOŞ_DEĞER) && (ikinci != BOŞ_DEĞER))

saniye = BOŞ_DEĞER;

başka

if ((ilk != BOŞ_DEĞER) && (ilk != EMPTY_VALUE) && (ilk == BOŞ_DEĞER))

ilk = BOŞ_DEĞER;

}

void PlotPoint(int i,double& first[],double& second[],double& from[])

{

if (i>=Bars-2) dönüşü;

if (ilk == EMPTY_VALUE)

if (ilk == EMPTY_VALUE)

{ birinci = itibaren; ilk = itibaren; saniye = BOŞ_DEĞER; }

başka { saniye = itibaren; ikinci = itibaren; ilk = BOŞ_DEĞER; }

başka {birinci = kimden; saniye = BOŞ_DEĞER; }

}

s_p_mony__alerts_1.01.mq4

Dosyalar:
 
mony:
hepinize merhaba, aşağıda ekli bir t4 göstergesi var sadece bunu robo ticareti ve robo ticareti için nasıl kullanabileceğimi bilmek istiyorum veya ea aynı mı değil mi

(ben zaten kullanıyorum manuel alım satımı bilgisayar başında oturuyorum ama)

Bunu otomatik ticaret için kullanırsam, lütfen bana nasıl yardım edin, şimdiden teşekkürler

//------------------------------------------------ ------------------

// mony tarafından orijinal ised ve ilk uygulama

// mladen tarafından tris versiyonu

//------------------------------------------------ ------------------

#özellik telif hakkı "mony & mladen"

#özellik bağlantısı "www.forex.tsd.com adresinde yapılmıştır"

#özellik göstergesi_chart_window

#özellik göstergesi_buffers 5

#özellik göstergesi_renk1 OrtaMavi

#özellik göstergesi_renk2 Kırmızı

#özellik göstergesi_renk3 OrtaMavi

#özellik göstergesi_color4 Kırmızı

#özellik göstergesi_renk5 Kırmızı

#özellik göstergesi_width3 3

#özellik göstergesi_width4 3

#özellik göstergesi_width5 3

#mülkiyet katı

//

//

//

//

//

//

enum trEkran

{

dis_line, // Renkli satırı göster

dis_bars, // Renkli çubukları göster

dis_both // Hem renkli çizgileri hem de çubukları göster

};

harici int CCIperiod = 3; // CCİ dönemi

extern int ATRperiod = 300; // ATR dönemi

harici ENUM_APPLIED_PRICE application_price = PRICE_TYPICAL; // Kullanılacak fiyat

extern enDisplay DisplayType = dis_line; // Ekran tipi

extern bool alertsOn = true; // Uyarıları aç

extern bool alertsOnCurrent = false; // Mevcut (hala açık) çubukta uyarılar

harici bool uyarılarıMesaj = true; // Uyarılar açılır mesajı göstermelidir

harici bool uyarılarıSound = true; // Uyarılar ses çalmalıdır

harici bool uyarılarıNotify = true; // Uyarılar bildirim göndermelidir

harici bool uyarılarıEmail = false; // Uyarılar enail göndermelidir

harici string soundFile = "o.wma"; // Ses dosyası t sesli uyarılar için kullanılır

çift TrLine[];

çift TrendDowna[];

çift TrendDownb[];

çift HistUp[];

çift HistDn[];

çift eğilim[];

//------------------------------------------------ ------------------

//

//------------------------------------------------ ------------------

//

//

//

//

//

int init()

{

Gösterge Tamponları(6);

int styleLine = DRAW_LINE; if (DisplayType==dis_bars) styleLine=DRAW_NONE;

int styleBars = DRAW_HISTOGRAM; if (DisplayType==dis_line) styleBars=DRAW_NONE;

SetIndexBuffer(0, HistUp); SetIndexStyle(0,styleBars);

SetIndexBuffer(1, HistDn); SetIndexStyle(1,styleBars);

SetIndexBuffer(2, TrLine); SetIndexStyle(2,styleLine);

SetIndexBuffer(3, TrendDowna); SetIndexStyle(3,styleLine);

SetIndexBuffer(4, TrendDownb); SetIndexStyle(4,styleLine);

SetIndexBuffer(5, eğilim);

dönüş(0);

}

int deinit(){ dönüş (0); }

//------------------------------------------------ ------------------

//

//------------------------------------------------ ------------------

//

//

//

//

//

int başlangıç()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Barlar-sayılan_barlar,Barlar-1);

//

//

//

//

//

if (trend[limit]==-1) CleanPoint(limit,TrendDowna,TrendDownb);

for(int i=limit; i >= 0; i--)

{

double cciTrendNow = iCCI(NULL, 0, CCIperiod, application_price, i);

if (cciTrendNow >= 0)

{

TrLine = NormalizeDouble(Düşük - iATR(NULL, 0, ATRperiod, i),Digits);

if (i<(Bars-1) && TrLine < TrLine) TrLine = TrLine;

}

if (cciTrendNow <= 0)

{

TrLine = NormalizeDouble(Yüksek + iATR(NULL, 0, ATRperiod, i),Digits);

if (i TrLine) TrLine = TrLine;

}

//

//

//

//

//

TrendDowna = BOŞ_VALUE;

TrendDownb = BOŞ_DEĞER;

if (i<(Bar-1))

{

eğilim = eğilim;

if (TrLine> TrLine) trendi = 1;

if (TrLine< TrLine) trendi =-1;

if (trend == -1) PlotPoint(i,TrendDowna,TrendDownb,TrLine);

if (trend == 1) { HistUp = Yüksek; HistDn = Düşük; }

if (trend == -1) { HistDn = Yüksek; HistUp = Düşük; }

}

}

ManageAlerts();

dönüş(0);

}

//+------------------------------------------- --------------------

//|

//+------------------------------------------- --------------------

//

//

//

//

//

void managerAlerts()

{

if (uyarılarAçık)

{

int hangiBar = 1; if (alertsOnCurrent) hangiBar = 0;

if (trend[hangiBar] != trend[hangiBar+1])

{

if (trend[hangiBar] == 1) doAlert(hangiBar,"yukarı");

if (trend[hangiBar] ==-1) doAlert(hangiBar,"aşağı");

}

}

}

//

//

//

//

//

void doAlert(int forBar, string doWhat)

{

statik dize öncekiAlert="hiçbir şey";

statik tarihsaat öncekiSaat;

dize mesajı;

if (previousAlert != doWhat || öncekiZaman != Zaman[Bar için]) {

öncekiAlert = doWhat;

öncekiZaman = Zaman[Bar için];

//

//

//

//

//

"+TimeToStr(TimeLocal(),TIME_SECONDS)+" konumunda ileti = Symbol()+" SP MY trendi "+doWhat;

if (alertsMessage) Alert(mesaj);

if (alertsNotify) SendNotification(mesaj);

if (alertsEmail) SendMail(Symbol()+" SP MY",mesaj);

if (alertsSound) PlaySound(soundFile);

}

}

//------------------------------------------------ -------------------

//

//------------------------------------------------ -------------------

//

//

//

//

//

void CleanPoint(int i,double& first[],double& second[])

{

if (i>=Bars-3) döner;

if ((ikinci != BOŞ_DEĞER) && (ikinci != BOŞ_DEĞER))

saniye = BOŞ_DEĞER;

başka

if ((ilk != EMPTY_VALUE) && (ilk != EMPTY_VALUE) && (ilk == BOŞ_DEĞER))

ilk = BOŞ_DEĞER;

}

void PlotPoint(int i,double& first[],double& second[],double& from[])

{

if (i>=Bars-2) dönüşü;

if (ilk == EMPTY_VALUE)

if (ilk == EMPTY_VALUE)

{ birinci = itibaren; ilk = itibaren; saniye = BOŞ_DEĞER; }

başka { saniye = itibaren; ikinci = itibaren; ilk = BOŞ_DEĞER; }

başka {birinci = kimden; saniye = BOŞ_DEĞER; }

}

s_p_mony__alerts_1.01.mq4

Henüz EA'dan iCustom() çağrısını kullanmayı denediniz mi?

Tek yapmanız gereken, iCustom() işlevini kullanarak göstergeyi çağırmak, trend arabelleğini okumak (metatrader adaylığında arabellek 5) ve değeri -1'den +1'e veya +1'den -1'e değiştirdiğinde bir sinyaliniz olur.

 

efendim efendim lütfen üzgünüm efendim ......... iCustom() çağrısının ne olduğunu bilmiyorum .. ve nerede deneyebilirim ??? ...... mt4'te bulduğum yer veya göstergeyi değiştirdiğimde bana bu SP mony göstergesini otomatik ticaret / robo ticaretinde nasıl kullanabileceğimi söyle, bu kadar efendim ................. .....

Bunların hepsi uzun bir süreçse, lütfen beni affedin ve lütfen yukarıdaki mesajları unutun teşekkür ederim efendim