Kodlama yardımı - sayfa 490

 
tfi_markets:
Uygulamak; NonLag_Schaff_TrendCycle göstergesi:

Merhaba Pro-Coders,

Birinin NonLag_Schaff_TrendCycle göstergesini uygulamada bana yardımcı olabileceğini merak ediyorum.

Gösterge Dış Öğeleri:

extern int FastLength = 23;

extern int SlowLength = 50;

harici int StcPeriod = 10;

extern int MacdPrice = PRICE_CLOSE;

extern bool Interpolate = true;

extern bool MultiColor = doğru;

Gösterge Tamponları:

Gösterge Tamponları(8);

SetIndexBuffer(0,stcBuffer);

SetIndexBuffer(1,stcBufferUA);

SetIndexBuffer(2,stcBufferUB);

SetIndexBuffer(3,macdBuffer);

SetIndexBuffer(4,fastKBuffer);

SetIndexBuffer(5,fastDBuffer);

SetIndexBuffer(6,fastKKBuffer);

SetIndexBuffer(7,trend);

Ben şöyle bir şey yapmaya çalışıyorum:

double STC1_c=iCustom(Symbol(),0,"NonLag_Schaff_TrendCycle",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,0,bar);

double STC2_c=iCustom(Symbol(),0,"NonLag_Schaff_TrendCycle",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,0,bar+1);

if((STC1_c>15 && STC2_c85 && STC2_c SATIN AL

if((STC1_c15)||(STC1_c85) -> SAT

Ama bir hata mesajı alıyorum:

Hata: NonLag_Schaff_TrendCycle kaldırıldı.

Sanırım arabellekleri yanlış okuyabilirim. Önerisi olan var mı?

Şimdiden teşekkür ederim!

Gecikmesiz schaf trend döngüsünün ilk parametresi "TimeFrame"dir. iCustom aramasında bunu kaçırıyorsunuz. iCustom() çağrısı şöyle olmalıdır:

iCustom(Symbol(),0,"NonLag_Schaff_TrendCycle","",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,0,bar);

 

Yardıma ihtiyacınız var

merhaba mladen

geçmişin için teşekkürler yardımcı olur

bu göstergeyi yapmaya çalıştım ama görünmüyor

bu yüzden lütfen bana tekrar yardım et

Şimdiden teşekkürler

mtf_rsi_candle_all_in_one.mq4

 

Merhaba Mladen,

yardımın için çok teşekkürler. şimdi çalışıyor

Saygılarımızla,

Thomas

mladen:
Gecikmesiz schaf trend döngüsünün ilk parametresi "TimeFrame"dir. iCustom aramasında bunu kaçırıyorsunuz. iCustom() çağrısı şöyle olmalıdır: iCustom(Symbol(),0,"NonLag_Schaff_TrendCycle","",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,0,bar);
 

Merhaba Mladen!

Yeni yapı uzun olduğunda optimizasyonu yapar.

670'i oluşturmaya geri dönüyorsanız, optimizasyon hızı iyidir.

Sorun ne olabilir?

ekspertsi.mq4

tsi.mq4

Dosyalar:
experttsi.mq4  2 kb
tsi.mq4  4 kb
 
QuantF:
Merhaba Mladen!

Yeni yapı uzun olduğunda optimizasyonu yapar.

670'i oluşturmaya geri dönüyorsanız, optimizasyon hızı iyidir.

Sorun ne olabilir?

ekspertsi.mq4

tsi.mq4

TSI göstergesindeki kökler şu şekilde giden satırı siler:

#mülkiyet katı

Bu hat ile çalışmayacak

______________

Gerisi için: hepimiz umut etmeli ve dua etmeliyiz. Her yeni derlemede, geriye dönük test etme daha yavaş ve daha yavaştır (yapı 840'ın şikayetine bakın). Yapılacak pek bir şey yok. Görsel geri testin normal geriye dönük testlerden daha hızlı olduğu noktaya geldi (benim kullandığım yapı 788'dir) ve içinde hiçbir mantık yok

 

Merhaba Pro Kodlayıcılar,

nedense benim EA pozisyonları kapatıyor ama trend değiştikten sonra yenilerini açmıyor. Birisi nazikçe bakabilir mi?

Şimdiden teşekkür ederim!

//----------------------- LOAD INDICATORS FOR CLOSING POSITIONS

double STC0_c=iCustom(Symbol(),0,"NonLag_Schaff_TrendCycle","",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,MultiColor,0,bar+2);

double STC1_c=iCustom(Symbol(),0,"NonLag_Schaff_TrendCycle","",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,MultiColor,0,bar+1);

double STC2_c=iCustom(Symbol(),0,"NonLag_Schaff_TrendCycle","",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,MultiColor,0,bar);

// for(int i=0;i<OrdersTotal(); i++)

for(int i=OrdersTotal()-1;i>=0 ; i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

if(OrderMagicNumber()!= MAGIC)continue;

if(OrderSymbol()!= s_symbol) continue;

//----------------------- CLOSE BUY CONDITION

if(STC1_c!=STC2_c) // Check trend

{

if(OrderType()==OP_BUY)

{

if(STC1_c>STC0_c&&STC2_c<STC1_c)

{

bool buyClose=OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_BID),Slippage*pipMultiplier,clCloseBuy);

if(buyClose==false)

{

int ErrorCode = GetLastError();

string ErrDesc = ErrorDescription(ErrorCode);

string ErrAlert= StringConcatenate("Close Buy Order - Error ",ErrorCode,": ",ErrDesc);

if(ShowAlerts == true) Alert(ErrAlert);

string ErrLog=StringConcatenate("Bid: ",MarketInfo(s_symbol,MODE_BID)," Lots: ",OrderLots()," Ticket: ",OrderTicket());

Print(ErrLog);

}

break;

} // mod

}

}

//----------------------- CLOSE SELL CONDITION

if(STC1_c!=STC2_c)

{

if(OrderType()==OP_SELL)

{

if(STC1_cSTC1_c)

{

bool sellClose= OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_ASK),Slippage*pipMultiplier,clCloseSell);

if(sellClose == false)

{

ErrorCode = GetLastError();

ErrDesc = ErrorDescription(ErrorCode);

ErrAlert=StringConcatenate("Close Sell Order - Error ",ErrorCode,": ",ErrDesc);

if(ShowAlerts==true) Alert(ErrAlert);

ErrLog=StringConcatenate("Ask: ",MarketInfo(s_symbol,MODE_ASK)," Lots: ",OrderLots()," Ticket: ",OrderTicket());

Print(ErrLog);

}

break;

} // mod

}

}

}

}

Dosyalar:
trendcycle.jpg  97 kb
 
tfi_markets:
Merhaba Pro Kodlayıcılar,

nedense benim EA pozisyonları kapatıyor ama trend değiştikten sonra yenilerini açmıyor. Birisi nazikçe bakabilir mi?

Şimdiden teşekkür ederim!

//----------------------- LOAD INDICATORS FOR CLOSING POSITIONS

double STC0_c=iCustom(Symbol(),0,"NonLag_Schaff_TrendCycle","",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,MultiColor,0,bar+2);

double STC1_c=iCustom(Symbol(),0,"NonLag_Schaff_TrendCycle","",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,MultiColor,0,bar+1);

double STC2_c=iCustom(Symbol(),0,"NonLag_Schaff_TrendCycle","",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,MultiColor,0,bar);

// for(int i=0;i<OrdersTotal(); i++)

for(int i=OrdersTotal()-1;i>=0 ; i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

if(OrderMagicNumber()!= MAGIC)continue;

if(OrderSymbol()!= s_symbol) continue;

//----------------------- CLOSE BUY CONDITION

if(STC1_c!=STC2_c) // Check trend

{

if(OrderType()==OP_BUY)

{

if(STC1_c>STC0_c&&STC2_c<STC1_c)

{

bool buyClose=OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_BID),Slippage*pipMultiplier,clCloseBuy);

if(buyClose==false)

{

int ErrorCode = GetLastError();

string ErrDesc = ErrorDescription(ErrorCode);

string ErrAlert= StringConcatenate("Close Buy Order - Error ",ErrorCode,": ",ErrDesc);

if(ShowAlerts == true) Alert(ErrAlert);

string ErrLog=StringConcatenate("Bid: ",MarketInfo(s_symbol,MODE_BID)," Lots: ",OrderLots()," Ticket: ",OrderTicket());

Print(ErrLog);

}

break;

} // mod

}

}

//----------------------- CLOSE SELL CONDITION

if(STC1_c!=STC2_c)

{

if(OrderType()==OP_SELL)

{

if(STC1_cSTC1_c)

{

bool sellClose= OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_ASK),Slippage*pipMultiplier,clCloseSell);

if(sellClose == false)

{

ErrorCode = GetLastError();

ErrDesc = ErrorDescription(ErrorCode);

ErrAlert=StringConcatenate("Close Sell Order - Error ",ErrorCode,": ",ErrDesc);

if(ShowAlerts==true) Alert(ErrAlert);

ErrLog=StringConcatenate("Ask: ",MarketInfo(s_symbol,MODE_ASK)," Lots: ",OrderLots()," Ticket: ",OrderTicket());

Print(ErrLog);

}

break;

} // mod

}

}

}

}

O kodda hiç pozisyon açacak bir kod yok ( OrderSend() fonksiyonu hiç kullanılmamaktadır)

 
mladen:
TSI göstergesindeki Firs, şu şekilde giden satırı siler:

#mülkiyet katı

Bu hat ile çalışmayacak

______________

Gerisi için: hepimiz umut etmeli ve dua etmeliyiz. Her yeni derlemede, geriye dönük test etme daha yavaş ve daha yavaştır (yapı 840'ın şikayetine bakın). Yapılacak pek bir şey yok. Görsel geri testin normal geriye dönük testlerden daha hızlı olduğu noktaya geldi (benim kullandığım yapı 788'dir) ve içinde hiçbir mantık yok

Cevap için teşekkürler!

Açık. Eski bir yapıda kalıyorum.

 
mladen:
O kodda hiç pozisyon açacak bir kod yok (OrderSend() işlevi hiç kullanılmadı)

Merhaba Mladen,

haklısın, lütfen aşağıda "OpenSell()" adlı kodu bulun.

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

//| OPEN BUY / OPEN SELL

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

//----------------------- BUY CONDITION

for(i=OrdersTotal()-1;i>=0; i--)

if(OrderType()==OP_SELL) break;

{

if(STC1!=STC2)

{

/*if(STC1STC1)BUY="true";*/

if(STC1STC1)

/*if((STC115) || (STC185)) // code for buy */

OpenBuy();

return(0);

}

openedOrders++;

}

//----------------------- SELL CONDITION

// if(STC1>STC0&&STC2<STC1)SELL="true";

//if((STC1>15 && STC285 && STC2<85)) // code for sell

if(STC1>STC0&&STC2<STC1) // code for sell

{

OpenSell();

return(0);

}

}

//----------------------- OPEN SELL

void OpenSell()

{

double lsStop = 0; if(sStopLoss>0) lsStop = NormalizeDouble(MarketInfo(s_symbol,MODE_BID)+sStopLoss *pPoint*pipMultiplier,digit);

double lsTake = 0; if(sTakeProfit>0) lsTake = NormalizeDouble(MarketInfo(s_symbol,MODE_BID)-sTakeProfit*pPoint*pipMultiplier,digit);

if(AccountFreeMargin()<(100*Lots)) { Print("We have no money. Free Margin = ",AccountFreeMargin()); return; }

// ECN

if(!EcnBroker)

dummyResult=OrderSend(s_symbol,OP_SELL,LotsOptimized(),MarketInfo(s_symbol,MODE_BID),Slippage*pipMultiplier,lsStop,lsTake,ExpertName,MAGIC,0,clOpenSell);

else

{

int sellTicket = OrderSend(s_symbol,OP_SELL,LotsOptimized(),MarketInfo(s_symbol,MODE_BID),Slippage*pipMultiplier,0,0,ExpertName,MAGIC,0,clOpenSell);

if(sellTicket >= 0)

bool sellOrderMod=OrderModify(sellTicket,OrderOpenPrice(),lsStop,lsTake,0,CLR_NONE);

if(sellOrderMod==false)

{

int ErrorCode = GetLastError();

string ErrDesc = ErrorDescription(ErrorCode);

string ErrAlert=StringConcatenate("Modify Sell Order - Error ",ErrorCode,": ",ErrDesc);

if(ShowAlerts==true) Alert(ErrAlert);

string ErrLog=StringConcatenate("Ask: ",MarketInfo(s_symbol,MODE_ASK)," Bid: ",MarketInfo(s_symbol,MODE_BID)," Ticket: ",sellTicket," Stop: ",lsStop," Profit: ",lsTake);

Print(ErrLog);

}

}

}

 

sevgili mladen, mrtools yukarıdaki yazıdaki fxultratrend göstergesi sorularıma cevabınızı görmek için bekliyor.

umarım beni hayal kırıklığına uğratmazsın.

Teşekkürler.