Nasıl kodlanır? - sayfa 167

 
 

Hala bu göstergeye sesli bir uyarı eklemeye çalışıyorum...... Birisi kodu benim için kontrol edebilir mi, çünkü çalışmıyor mu?

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

//|

//|

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

#property copyright "niva"

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 White

#property indicator_color2 Red

extern bool Email_Enabled = false;

extern bool Alert_Enabled = true;

//---- input parameters

int CountBars=10000;

//---- buffers

double uptrend[];

double downtrend[];

bool AlertSent,EmailSent;

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

//| Custom indicator initialization function |

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

int init()

{

//---- indicator line

IndicatorBuffers(2);

SetIndexStyle(0,DRAW_ARROW);

SetIndexArrow(0,217);

SetIndexStyle(1,DRAW_ARROW);

SetIndexArrow(1,218);

SetIndexBuffer(0,val1);

SetIndexBuffer(1,val2);

//----

return(0);

}

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

//| AltrTrend_Signal_v2_2 |

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

int start()

{

if (CountBars>=Bars) CountBars=Bars;

int i,shift,counted_bars=IndicatorCounted();

int uptrend, downtrend;

for (shift = CountBars; shift>=0; shift--)

{

if(High[shift-1]>High[shift]&&Low[shift-1]>Low[shift]&&uptrend!=3){

uptrend = uptrend+1;

downtrend=0;

}else if(High[shift-1]<High[shift]&&Low[shift-1]<Low[shift]&&downtrend!=3){

downtrend=downtrend+1;

uptrend=0;

}

else{

uptrend=0;

downtrend=0;

}

if (uptrend==3)

{

val1[shift]=Low[shift];

}

if (downtrend==3)

{

val2[shift]=High[shift];

}

}

return(0);

}

//----

if (Alert_Enabled && (uptrend[0] != 0 || uptrend[0] !=0) && !AlertSent)

{

Alert(Symbol() + "HiLow+3");

AlertSent=true;

}

if (Email_Enabled && (downtrend[0] != 0 || downtrend[0] !=0) && !EmailSent)

{

SendMail(Symbol() + "HiLow+3","HiLow+3 indicator triggered");

EmailSent=true;

}

if(downtrend[0] == 0 && uptrend[0] == 0 )

{

EmailSent=false;

AlertSent=false;

}

return(0);

}

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

teşekkürler

mrwobbles:
Kodun bir yerinde parantezler dengesiz. Bir yerde a } ve a ) kodda eksik gibi görünüyor. Kaç tane açık ve kapalı parantez olduğunu (açık için +1 ve kapalı için -1) gözden geçirmeniz ve saymanız gerekecek, bu da size kaç tane eksik olduğunu söyleyecektir (bir +2 sayısının iki sağ parantez '}' anlamına geldiğini veya tersine). Düzgün girintiliyse, doğruyu nereye koyacağınızı } bulabilmelisiniz. Mutlu avlar

Bazı ayarları değiştirmeyi başardım ve sonunda neredeyse orada olduğuna inanıyorum! Şimdi aşağıdaki kodlamadan sonra diyor ki:

'shortSL' - değişken tanımlanmadı

'longSL' - değişken tanımlanmadı

İşte böyle görünüyor:

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

//| Salgado.mq4 |

//| salgadoguilherme@hotmail.com |

//| |

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

#mülkiyet telif hakkı ""

#özellik bağlantısı "salgadoguilherme@hotmail.com"

extern bool trade=true;

harici int barstosay=50;

harici çift lot=0.01;

harici int StopLoss =40;

harici int TakeProfit =10;

dış int kayma=3;

harici int sihirli sayı=816;

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

//| uzman başlatma işlevi |

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

int init()

{

//----

//----

dönüş(0);

}

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

//| uzman sıfırlama işlevi |

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

int tanım()

{

//----

//----

dönüş(0);

}

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

//| uzman başlatma işlevi |

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

int başlangıç()

{

//----

if(ticaret==doğru)

{

//M15

double M15_resistance=iCustom(NULL,PERIOD_M15,"!LinRegrBuf","true",barstocount,2,0);

double M15_resistance_p=iCustom(NULL,PERIOD_M15,"!LinRegrBuf","true",barstocount,2,barstocount-1);

double M15_line=iCustom(NULL,PERIOD_M15,"!LinRegrBuf","true",barstocount,0,0);

double M15_support=iCustom(NULL,PERIOD_M15,"!LinRegrBuf","true",barstocount,1,0);

çift eğimM15=((M15_resistance-M15_resistance_p)/barstocount)/Nokta;

//Alert(DoubleToStr(slopeM15,2);

Yorum(

"\n","M15 Eğim | ",eğimM15,

//KISA GİRİŞ

if(slopeM15<0 && IsTradeAllowed()==true)

{

bool shortopen=false;

int ord_cnt1=SiparişToplam();

için (int start1=0;start1<ord_cnt1;start1++)

{

OrderSelect(start1, SELECT_BY_POS, MODE_TRADES);

if(OrderMagicNumber()==sihirli sayı && OrderType()==OP_SEL)

{shortopen=true;}

}

if(shortopen==false)

{

double M15High=iHigh(Symbol(),PERIOD_M15,0);

if(M15Yüksek>=M15_direnç)

int shortticket=OrderSend(Symbol(),OP_SELL,lots,Bid,slippage,Bid+shortSL,M15_line,DoubleToStr(slopeM15,2);

if(kısa bilet<0)

{

//UZUN GİRİŞ

if(slopeM15>0 && IsTradeAllowed()==true)

{

bool longopen=yanlış;

int ord_cnt=SiparişToplam();

için (int start=0;start<ord_cnt;start++)

{

OrderSelect(başlat, SELECT_BY_POS, MODE_TRADES);

if(OrderMagicNumber()==sihirli sayı && OrderType()==OP_BUY)

{uzun açık=doğru;}

}

if(uzun açık==yanlış)

{

double M15Low=iLow(Symbol(),PERIOD_M15,0);

if(M15Düşük<=M15_support)

int longticket=OrderSend(Symbol(),OP_BUY,lot,Ask,slippage,Ask-longSL,M15_line,DoubleToStr(slopeM15,2);

eğer(uzun bilet<0)

{

//----

dönüş(0);

}

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

 

Mum tipi Indy

Merhaba,

Ekli çizelge gibi mum tipi göstergelerin nasıl kodlanacağına dair MQL eğitimlerine fena halde ihtiyacım var. Sadece bu forumun içinde veya dışında bir yere bağlantılar yeterli olacaktır. Çok teşekkürler.

Piper.

Dosyalar:
ma_candles.gif  15 kb
 

Birisi bana aşağıdakileri nasıl kodlayacağımı söyleyebilir mi;

Kısa vadeli bir MA uzun vadeli bir MA'yı geçtiğinden beri çubukların sayısını sayın.

Teşekkür ederim!

 

Kapatıldıktan sonra işlemleri sürdürmek için EA kodu.

Merhaba,

Bir EA için, durdurulduktan sonra işlemleri yönetmeye devam edebilecek ve sonra tekrar geri gelebilecek herhangi bir örnek kod var mı?

Teşekkürler,

JForex

 

Nasıl kodlanır?

darvasboxes:
Birisi bana aşağıdakileri nasıl kodlayacağımı söyleyebilir mi;

Kısa vadeli bir MA uzun vadeli bir MA'yı geçtiğinden beri çubukların sayısını sayın.

Teşekkür ederim!

Evet!

Barları geçtiklerinden beri sayın:

int i;

bool shortGreater = (iMA(NULL,0,8,8,MODE_SMMA,PRICE_MEDIAN,0) > iMA(NULL,0,24,8,MODE_SMMA,PRICE_MEDIAN,0));

bool sgSon;

for(i=0;i<iBars(NULL,0);i++) {

sgLast = kısaBüyük;

shortGreater = (iMA(NULL,0,8,8,MODE_SMMA,PRICE_MEDIAN,i) > iMA(NULL,0,24,8,MODE_SMMA,PRICE_MEDIAN,i));

if(shortGreater !== sgLast) {

kırmak;

}

}

i değişkeni, geçtiklerinden beri çubuk sayısını içerecektir.

Yararlı bulduysanız bana biraz nakit göndermekten çekinmeyin. Memnuniyet duydum.

 

Hadi bakalım.

Guilhermesalgado:
Bazı ayarları değiştirmeyi başardım ve sonunda neredeyse orada olduğuna inanıyorum! Şimdi aşağıdaki kodlamadan sonra diyor ki:

'shortSL' - değişken tanımlanmadı

'longSL' - değişken tanımlanmadı

Hadi bakalım. Yaptığınız şeyi aldım ve derlenmesi için değiştirdim. Dikkat edin, mantığınız kötü, eksik görünüyor ve muhtemelen istediğinizi yapmayacak.

Ama işte gidiyorsun.

- ChazzMoney

PS 170$, bir program için SON DERECE ucuz. Beş rakam için yılda bir veya iki kez özel yatırım yazılımı yazıyorum. Bu tür işleri üstlenen programcılar dikkatli olmalıdır - hiçbir vakayı kaçırmadığınızdan emin olmak için HER ŞEYİ kontrol etmeniz gerekir. Bir böcek, rastgele bir tüccar kadar iyidir.

Yararlı bulduysanız bana biraz nakit göndermekten çekinmeyin. Düşünceni takdir ediyorum.

Dosyalar:
 

standart ZigZag kodu

Merhaba

bu kod "ZigZag.mq4" standardına aittir.

"if (counted_bars==0 && downloadhistory) // geçmiş indirildi"

counted_bars==0 : değerin sıfıra eşit olup olmadığı kontrol ediliyor........ tamam.

downloadhistory : koşul yok kontrol neden ??? lütfen bunu temizle

Teşekkürler.

 

2 SİPARİŞ Açılıyor ve 2 SİPARİŞ kapatılıyor..SÜREKLİ OLARAK.

EA'mın her zaman bir satın alma VEYA satma için iki emir açmasını sağlamak için uzun süredir deniyorum ve DENEYORUM. Biri TP, diğeri HİÇBİRİ ile. 2 emir açtıktan sonra, ters yönde işlem yapmak için KADAR artık açmayın.

BAZI NEDENLE, hesap geçmişine bakıyorum ve 1 sipariş, sonra 3 sipariş, sonra 4 sipariş, sonra 2 sipariş görüyorum ve çöp gibi çalışıyor.

HERHANGİ BİR Kodlama Ustası bir göz atıp bana bilgi verebilir mi?

Teşekkür ederim!!!!!!!!!!!!!!!!

AÇIK SİPARİŞLER

-------

BuyTicket1 = Yanlış;

BuyTicket2 = Yanlış;

while (!BuyTicket1) {

BuyTicket1 = OrderSend(Symbol(), OP_BUY, Lot, Ask, Kayma, StopLoss, Ask + TakeProfit * Point, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);

Uyku(Siparişler Arasında Duraklat * 1000);}

//if (BuyTicket1 && SignalMail) SendMail("[Sinyal Uyarısı]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " 1. Alımı Aç");

Uyku(1000);

while (!BuyTicket2) {

BuyTicket2 = OrderSend(Symbol(), OP_BUY, Lot, Sor, Kayma, StopLoss, 0, "2nd Buy(#" + MagicNumber + ")", MagicNumber, 0, BlueViolet);

Uyku(Siparişler Arasında Duraklat * 1000);}

------------

SİPARİŞLERİ KAPAT

------------

if(Sipariş Toplamı() > 0) {

OrderSelect(0, SELECT_BY_POS, MODE_TRADES);

if(OrderType() == OP_SEL){

for (int j = ToplamSatışSatış-1; j >= 0; j --) {

PozisyonKapalıSell = Yanlış;

DenemelerDenendiKapatSat = 0;

OrderSelect(j, SELECT_BY_POS, MODE_TRADES);

while (!PositionClosedSell && AttemptsTriedCloseSell < CloseposnAttempts) {

DenemelerDenendiKapatSat = DenemelerDenendiKapatSat + 1;

OrderCloseSell = OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, MediumSeaGreen);

Uyku(Siparişler Arasında Duraklat * 1000);

if( OrderCloseSell == True ) { // Pozisyon Kapatıldı Başarılı.

Neden: