Nasıl kodlanır? - sayfa 96

 
 

Herkese merhaba,

Bu aptalca bir kodlama sorusu ve daha önce bir yerde gördüğümü biliyorum ama yardıma ihtiyacım var.

Özel bir gösterge kodluyorum ve tek yapmak istediğim mevcut teklif fiyatını YALNIZCA YENİ bir çubuğun BAŞLANGIÇINDA okumak. Sadece Open[0] kullanamam çünkü her yeni onay işareti geldiğinde mevcut çubuğun açık değerini döndürmeye devam edecek. Yeni bir çubuk oluşana kadar değerin yalnızca bir kez döndürülmesini istiyorum.

Burada oldukça basit bir şeyi kaçırdığımı biliyorum, ancak bunu anlamakta biraz zorlanıyorum. Birisi bana yardım edebilir mi?

Teşekkürler,

-kurt

 
wolfe:
Herkese merhaba,

Bu aptalca bir kodlama sorusu ve daha önce bir yerde gördüğümü biliyorum ama yardıma ihtiyacım var.

Özel bir gösterge kodluyorum ve tek yapmak istediğim mevcut teklif fiyatını YALNIZCA YENİ bir çubuğun BAŞLANGIÇINDA okumak. Sadece Open[0] kullanamam çünkü her yeni onay işareti geldiğinde mevcut çubuğun açık değerini döndürmeye devam edecek. Yeni bir çubuk oluşana kadar değerin yalnızca bir kez döndürülmesini istiyorum.

Burada oldukça basit bir şeyi kaçırdığımı biliyorum, ancak bunu anlamakta biraz zorlanıyorum. Birisi bana yardım edebilir mi?

Teşekkürler,

-kurt

Sadece mevcut çubuk zamanını kaydedin (Zaman[0]) - bu değer değiştiğinde, yeni bir çubuğunuz olur, bu yüzden fiyatınızı alın, yeni değeri kaydedin ve tekrarlayın...

 
omelette:
Sadece mevcut çubuk zamanını kaydedin (Zaman[0]) - bu değer değiştiğinde, yeni bir çubuğunuz olur, bu yüzden fiyatınızı alın, yeni değeri kaydedin ve tekrarlayın...

teşekkürler omlet,

Bunu düşünmeliydim, kendimi biraz hayal kırıklığına uğrattım!

Yardım için teşekkürler!

 

Başka biri bana bu kodda neyi yanlış yaptığımı gösterebilir mi?

Günlük zaman dilimi gibi daha fazla zaman dilimi eklemek istiyorum, ama neyin yanlış olduğunu bilmiyorum

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

//| #MTF_Hi_Low_Middle.mq4

//| Darkkiller tarafından spudfibo.Upgrade'den taban

//: Bazı düzeltmeler yapmama yardım ettiği için Mladen'e teşekkürler

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

#özellik göstergesi_chart_window

extern string note1 = "H4 Daha Yüksek,Orta,Düşük renkler";

dış renk H4HigherColor = DeepSkyBlue;

dış renk H4MiddleColor = Sarı;

dış renk H4LowerColor = HotPink;

extern string note2 = "H4'ü Daha Yüksek, Aşağı ve Orta Çizilsin mi?";

extern bool H4HiLow = doğru;

extern bool H4Mid = doğru;

extern string note3 = "D1 Daha Yüksek,Orta,Düşük renkler";

dış renk D1HigherColor = DeepSkyBlue;

dış renk D1MiddleColor = Sarı;

dış renk D1LowerColor = HotPink;

extern string note4 = "D1'i Yukarı, Aşağı ve Ortadan Çizin mi?";

extern bool D1HiLow = doğru;

extern bool D1Mid = doğru;

double HiPrice, LoPrice, Range, D1HiPrice, D1LoPrice, D1Range;

tarihsaat Başlangıç Saati;

int init()

{

dönüş(0);

}

int tanım()

{

ObjectDelete("H4Yüksek");

ObjectDelete("H4Lower");

ObjectDelete("H4Middle");

ObjectDelete("D1Yüksek");

ObjectDelete("D1Alt");

ObjectDelete("D1Orta");

dönüş(0);

}

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

//| Fibo çiz

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

int DrawFibo()

{

//////////////////////////////////////HILO/////

eğer(H4HiDüşük)

{

if(ObjectFind("H4Yüksek") == -1)

ObjectCreate("H4Higher", OBJ_FIBO, 0, StartTime, HiPrice+Range, StartTime, HiPrice);

başka

{

ObjectSet("H4Higher",OBJPROP_TIME2, StartTime);

ObjectSet("H4Higher",OBJPROP_TIME1, StartTime);

ObjectSet("H4Yüksek",OBJPROP_PRICE1,HiPrice+Range);

ObjectSet("H4Yüksek",OBJPROP_PRICE2,HiFiyat);

}

ObjectSet("H4Higher", OBJPROP_LEVELCOLOR, H4HigherColor);

ObjectSet("H4Yüksek", OBJPROP_FIBOLEVELS,1);

ObjectSet("H4Yüksek", OBJPROP_FIRSTLEVEL+0,0.0); ObjectSetFiboDescription("H4Yüksek", 0, "H4 YÜKSEK- %$");

ObjectSet("H4Yüksek", OBJPROP_RAY,doğru);

ObjectSet("H4Yüksek", OBJPROP_BACK,true);

ObjectSet("H4Yüksek", OBJPROP_COLOR,BOŞ);

if(ObjectFind("H4Lower") == -1)

ObjectCreate("H4Lower", OBJ_FIBO, 0, StartTime, LoPrice-Range, StartTime, LoPrice);

başka

{

ObjectSet("H4Lower", OBJPROP_TIME2, StartTime);

ObjectSet("H4Lower", OBJPROP_TIME1, StartTime);

ObjectSet("H4Lower", OBJPROP_PRICE1,LoPrice-Range);

ObjectSet("H4Düşük", OBJPROP_PRICE2,LoPrice);

}

ObjectSet("H4Lower", OBJPROP_LEVELCOLOR, H4LowerColor);

ObjectSet("H4Lower", OBJPROP_FIBOLEVELS, 1);

ObjectSet("H4Lower", OBJPROP_FIRSTLEVEL+0,0.0); ObjectSetFiboDescription("H4Lower", 0, "H4 LOWER - %$");

ObjectSet("H4Lower", OBJPROP_RAY, true);

ObjectSet("H4Lower", OBJPROP_BACK, true);

ObjectSet("H4Lower", OBJPROP_COLOR, BOŞ);

}

eğer(D1HiDüşük)

{

if(ObjectFind("D1Yüksek") == -1)

ObjectCreate("D1Yüksek", OBJ_FIBO, 0, D1StartTime, D1HiPrice+D1Range, D1StartTime, D1HiPrice);

başka

{

ObjectSet("D1Yüksek", OBJPROP_TIME2, D1StartTime);

ObjectSet("D1Yüksek", OBJPROP_TIME1, D1StartTime);

ObjectSet("D1Yüksek", OBJPROP_PRICE1, D1HiPrice+D1Range);

ObjectSet("D1Yüksek", OBJPROP_PRICE2, D1HiPrice);

}

ObjectSet("D1Higher", OBJPROP_LEVELCOLOR, D1HigherColor);

ObjectSet("D1Yüksek", OBJPROP_FIBOLEVELS,1);

ObjectSet("D1Yüksek", OBJPROP_FIRSTLEVEL+0,0.0); ObjectSetFiboDescription("D1Yüksek", 0, "H4 YÜKSEK- %$");

ObjectSet("D1Yüksek", OBJPROP_RAY, doğru);

ObjectSet("D1Yüksek", OBJPROP_BACK, true);

ObjectSet("D1Yüksek", OBJPROP_COLOR, BOŞ);

if(ObjectFind("D1Alt") == -1)

ObjectCreate("D1Lower", OBJ_FIBO, 0, D1StartTime, D1LoPrice-D1Range, D1StartTime, 1LoPrice);

başka

{

ObjectSet("D1Lower", OBJPROP_TIME2, D1StartTime);

ObjectSet("D1Lower", OBJPROP_TIME1, D1StartTime);

ObjectSet("D1Lower", OBJPROP_PRICE1, D1LoPrice-D1Range);

ObjectSet("D1Lower", OBJPROP_PRICE2, D1LoPrice);

}

ObjectSet("D1Lower", OBJPROP_LEVELCOLOR, D1LowerColor);

ObjectSet("D1Alt", OBJPROP_FIBOLEVELS,1);

ObjectSet("D1Alt", OBJPROP_FIRSTLEVEL+0,0.0); ObjectSetFiboDescription("D1Düşük", 0, "H4 ALT - %$");

ObjectSet("D1Lower", OBJPROP_RAY, true);

ObjectSet("D1Lower", OBJPROP_BACK, true);

ObjectSet("D1Lower", OBJPROP_COLOR, BOŞ);

}

////////////////////////////////////HILO////////

/////////////////////////////////////////ORTA////

eğer(H4Orta)

if(ObjectFind("H4Middle") == -1)

ObjectCreate("H4Middle", OBJ_FIBO, 0, StartTime, HiPrice, StartTime+PERIOD_H4*60, LoPrice);

başka

{

ObjectSet("H4Middle", OBJPROP_TIME2, StartTime);

ObjectSet("H4Middle", OBJPROP_TIME1, StartTime+PERIOD_H4*60);

ObjectSet("H4Middle", OBJPROP_PRICE1, HiPrice);

ObjectSet("H4Middle", OBJPROP_PRICE2, LoPrice);

}

ObjectSet("H4Middle", OBJPROP_LEVELCOLOR, H4MiddleColor);

ObjectSet("H4Middle", OBJPROP_FIBOLEVELS,1);

ObjectSet("H4Middle", OBJPROP_FIRSTLEVEL+0,0.500); ObjectSetFiboDescription("H4Middle", 0, "H4 ORTA - %$");

ObjectSet("H4Middle", OBJPROP_RAY, doğru);

ObjectSet("H4Middle", OBJPROP_BACK, true);

ObjectSet("H4Middle", OBJPROP_COLOR, BOŞ);

}

eğer(D1Orta)

if(ObjectFind("D1Orta") == -1)

ObjectCreate("D1Orta", OBJ_FIBO, 0, D1StartTime, D1HiPrice, D1StartTime+PERIOD_D1*60, D1LoPrice);

başka

{

ObjectSet("D1Orta", OBJPROP_TIME2, D1StartTime);

ObjectSet("D1Orta", OBJPROP_TIME1, D1StartTime+PERIOD_D1*60);

ObjectSet("D1Orta", OBJPROP_PRICE1, D1HiPrice);

ObjectSet("D1Orta", OBJPROP_PRICE2, D1LoPrice);

}

ObjectSet("D1Middle", OBJPROP_LEVELCOLOR, D1MiddleColor);

ObjectSet("D1Orta", OBJPROP_FIBOLEVELS,1);

ObjectSet("D1Orta", OBJPROP_FIRSTLEVEL+0,0.500); ObjectSetFiboDescription("D1Orta", 0, "D1 ORTA - %$");

ObjectSet("D1Orta", OBJPROP_RAY, doğru);

ObjectSet("D1Orta", OBJPROP_BACK, doğru);

ObjectSet("D1Orta", OBJPROP_COLOR, BOŞ);

}

/////////////////////////////////////////ORTA////

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

//| Gösterge başlatma işlevi

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

int başlangıç()

{

int shift = iBarShift(NULL, PERIOD_D1, Zaman[0]) + 1; // H4

HiPrice = iYüksek(BOŞ, PERIOD_H4, vardiya);

LoPrice = iLow (BOŞ, PERIOD_H4, vardiya);

StartTime = iTime(NULL, PERIOD_H4, shift);

D1HiPrice = iHigh(NULL, PERIOD_D1, shift);

D1LoPrice = iLow (BOŞ, PERIOD_D1, vardiya);

D1StartTime = iTime(BOŞ, PERIOD_D1, vardiya);

if(TimeDayOfWeek(StartTime) == 0/*Pazar*/)

{//Cuma günlerini en yüksek ve en düşük olarak ekleyin

HiPrice = MathMax(HiPrice, iHigh(NULL,PERIOD_H4, shift+1));

LoPrice = MathMin(LoPrice, iLow(NULL,PERIOD_H4, shift+1));

D1HiPrice = MathMax(D1HiPrice, iHigh(NULL, PERIOD_D1, shift+1));

D1LoPrice = MathMin(D1LoPrice, iLow(NULL, PERIOD_D1, shift+1));

}

Aralık = YüksekFiyat - LoPrice;

D1Range = D1HiPrice - D1LoPrice;

DrawFibo();

dönüş(0);

}

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

Bunun altında, H4 yüksek düşük orta için orijinali ekliyorum

 

Biraz yardım istiyorum lütfen delta-stop'u stop loss olarak kullanmaya çalışıyorum

ve takip eden durdurma. EA ektedir.

Bunu yapmak mümkün mü?

Dosyalar:
 

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

//| Avery T. Horton, Jr. aka TheRumpledOne TARAFINDAN DEĞİŞTİRİLDİ |

//| |

//| |

//|

//

// google araması "therumpledone mt4"

//

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

//| _Fibo_Hi_Low_Middle.mq4

//| Darkkiller tarafından spudfibo.Upgrade'den taban

//: Bazı düzeltmeler yapmama yardım ettiği için Mladen'e teşekkürler

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

#özellik göstergesi_chart_window

extern int myChartPeriod = 0 ;

extern string note1 = "Yüksek,Orta,Düşük renkler";

dış renk HigherColor = DeepSkyBlue;

dış renk MiddleColor = Sarı;

dış renk LowerColor = HotPink;

extern string note2 = "Orta çizilsin mi?";

extern bool HiLow = true;

extern bool Orta = doğru;

çift HiPrice, LoPrice, Aralık;

tarihsaat Başlangıç Saati;

string tChartPeriod, tHigher, tLower, tMiddle ;

int init()

{

if(myChartPeriod == 0) { myChartPeriod = Dönem() ; }

tChartPeriod = TimeFrameToString(myChartPeriod) ;

tYüksek = tChartPeriod + "H";

tDüşük = tChartPeriod + "L" ;

tOrta = tChartPeriod + "M" ;

dönüş(0);

}

int tanım()

{

ObjectDelete(tYüksek);

ObjectDelete(tLower);

ObjectDelete(tOrta);

dönüş(0);

}

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

//| Fibo çiz

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

int DrawFibo()

{

eğer (HiDüşük)

{

if(ObjectFind(tYüksek) == -1)

ObjectCreate(tHigher,OBJ_FIBO,0,StartTime,HiPrice+Range,StartTime,HiPrice);

başka

{

ObjectSet(tHigher,OBJPROP_TIME2, StartTime);

ObjectSet(tHigher,OBJPROP_TIME1, StartTime);

ObjectSet(tYüksek,OBJPROP_PRICE1,HiPrice+Range);

ObjectSet(tYüksek,OBJPROP_PRICE2,HiPrice);

}

ObjectSet(tHigher,OBJPROP_LEVELCOLOR,HigherColor);

ObjectSet(tYüksek,OBJPROP_FIBOLEVELS,1);

ObjectSet(tYüksek,OBJPROP_FIRSTLEVEL+0,0.0);

ObjectSetFiboDescription(tHigher,0,tChartPeriod+" HIGHER- %$");

ObjectSet(tHigher,OBJPROP_RAY,true);

ObjectSet(tHigher,OBJPROP_BACK,true);

ObjectSet(tYüksek,OBJPROP_COLOR,BOŞ);

if(ObjectFind(tLower) == -1)

ObjectCreate(tLower,OBJ_FIBO,0,StartTime,LoPrice-Range,StartTime,LoPrice);

başka

{

ObjectSet(tLower,OBJPROP_TIME2, StartTime);

ObjectSet(tLower,OBJPROP_TIME1, StartTime);

ObjectSet(tLower,OBJPROP_PRICE1,LoPrice-Range);

ObjectSet(tLower,OBJPROP_PRICE2,LoPrice);

}

ObjectSet(tLower,OBJPROP_LEVELCOLOR,LowerColor);

ObjectSet(tLower,OBJPROP_FIBOLEVELS,1);

ObjectSet(tLower,OBJPROP_FIRSTLEVEL+0,0.0);

ObjectSetFiboDescription(tLower,0,tChartPeriod+" LOWER - %$");

ObjectSet(tLower,OBJPROP_RAY,true);

ObjectSet(tLower,OBJPROP_BACK,true);

ObjectSet(tLower,OBJPROP_COLOR,BOŞ);

}

/////////////////////////////////////////ORTA//////// /////////////////

if(Orta)

if(ObjectFind(tMiddle) == -1)

ObjectCreate(tMiddle,OBJ_FIBO,0,StartTime,HiPrice,StartTime+myChartPeriod*60,LoPrice);

başka

{

ObjectSet(tMiddle,OBJPROP_TIME2, StartTime);

ObjectSet(tMiddle,OBJPROP_TIME1, StartTime+myChartPeriod*60);

ObjectSet(tMiddle,OBJPROP_PRICE1,HiPrice);

ObjectSet(tMiddle,OBJPROP_PRICE2,LoPrice);

}

ObjectSet(tMiddle,OBJPROP_LEVELCOLOR,MiddleColor);

ObjectSet(tMiddle,OBJPROP_FIBOLEVELS,1);

ObjectSet(tMiddle,OBJPROP_FIRSTLEVEL+0,0.500);

ObjectSetFiboDescription(tMiddle,0,tChartPeriod+" ORTA - %$");

ObjectSet(tMiddle,OBJPROP_RAY,true);

ObjectSet(tMiddle,OBJPROP_BACK,true);

ObjectSet(tOrta,OBJPROP_COLOR,BOŞ);

}

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

//| Gösterge başlatma işlevi

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

int başlangıç()

{

int shift = iBarShift(NULL,myChartPeriod,Time[0]) + 1; //

HiPrice = iHigh(NULL,myChartPeriod,shift);

LoPrice = iLow (NULL,myChartPeriod,shift);

StartTime = iTime(NULL,myChartPeriod,shift);

if(TimeDayOfWeek(StartTime)==0/*Pazar*/)

{//Cuma günlerini en yüksek ve en düşük olarak ekleyin

HiPrice = MathMax(HiPrice,iHigh(NULL,myChartPeriod,shift+1));

LoPrice = MathMin(LoPrice,iLow(NULL,myChartPeriod,shift+1));

}

Aralık = YüksekFiyat-LoFiyat;

DrawFibo();

// Yorum( "Dönem_", tChartPeriod ) ;

dönüş(0);

}

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

string TimeFrameToString(int tf)

{

dize tfs;

geçiş(tf) {

durum PERIOD_M1: tfs="M1" ; kırmak;

durum PERIOD_M5: tfs="M5" ; kırmak;

durum PERIOD_M15: tfs="M15" ; kırmak;

durum PERIOD_M30: tfs="M30" ; kırmak;

durum PERIOD_H1: tfs="H1" ; kırmak;

durum PERIOD_H4: tfs="H4"; kırmak;

durum PERIOD_D1: tfs="D1" ; kırmak;

durum PERIOD_W1: tfs="W1" ; kırmak;

durum PERIOD_MN1: tfs="MN";

}

dönüş(tfs);

}

Ben böyle yaptım.

Not: Eklerim neden siliniyor?

Dosyalar:
highlower.gif  14 kb
 

TaşıDurBir Kez

Merhaba, bu MoveStopOnce kodunu çalıştırmaya çalışıyorum ancak Satış işlemleri kod tarafından değiştirilmiyor, sadece Satın Almalar tarafından değiştiriliyor gibi görünüyor. Herşey yanlış?

//Buys

//MoveOnce

if(MoveStopOnce && MoveStopWhenPrice > 0) {

if(Bid - OrderOpenPrice() >= Point * MoveStopWhenPrice) {

if(OrderStopLoss() < OrderOpenPrice() + Point * MoveStopTo) {

OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0, Red);

if (!EachTickMode) BarCount = Bars;

continue;

}

}

}

[/code]

[code]

//Sells

//MoveOnce

if(MoveStopOnce && MoveStopWhenPrice > 0) {

if(OrderOpenPrice() - Ask >= Point * MoveStopWhenPrice) {

if(OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo) {

OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0, Red);

if (!EachTickMode) BarCount = Bars;

continue;

}

}

}

 

TaşıDurBir Kez

Bu sorunu yaşadım.

Bence şunu eklemelisin:

if (OrderType() == OP_BUY)

VE satış kodu için OP_SELL kullanın.

büyük olmak

 
Big Be:
Bu sorunu yaşadım.

Bence şunu eklemelisin:

if (OrderType() == OP_BUY)

VE satış kodu için OP_SELL kullanın.

büyük olmak

Tamam, eve gidince deneyeceğim ama o zaman neden hala Satın Alma siparişleriyle çalışıyor?

teşekkürler

Neden: