Hilfe bei der Codierung - Seite 490

 
tfi_markets:
Implement; NonLag_Schaff_TrendCycle Indikator:

Hallo Pro-Coders,

Ich frage mich, ob mir jemand bei der Implementierung des NonLag_Schaff_TrendCycle Indikators helfen kann.

Indikator Externs:

extern int FastLength = 23;

extern int SlowLength = 50;

extern int StcPeriod = 10;

extern int MacdPrice = PRICE_CLOSE;

extern bool Interpolate = true;

extern bool MultiColor = wahr;

Indikator-Puffer:

IndicatorBuffers(8);

SetIndexPuffer(0,stcPuffer);

SetIndexPuffer(1,stcPufferUA);

SetIndexBuffer(2,stcBufferUB);

SetIndexBuffer(3,macdBuffer);

SetIndexBuffer(4,fastKBuffer);

SetIndexBuffer(5,fastDBuffer);

SetIndexBuffer(6,fastKKBuffer);

SetIndexBuffer(7,trend);

Ich versuche, etwas zu tun wie:

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 KAUFEN

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

Aber ich erhalte eine Fehlermeldung:

Error: NonLag_Schaff_TrendCycle wurde entfernt.

Ich vermute, dass ich die Puffer vielleicht falsch gelesen habe. Hat jemand einen Vorschlag?

Vielen Dank im Voraus!

Der erste Parameter des NonLag_Schaff_TrendCycle ist "TimeFrame". Er fehlt in dem iCustom-Aufruf. Der iCustom()-Aufruf sollte wie folgt lauten:

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

 

Brauche Hilfe

Hallo mladen

danke für deine bisherige Hilfe

ich habe versucht, diesen Indikator zu erstellen, aber er erscheint nicht

also bitte hilf mir nochmal

Vielen Dank im Voraus

mtf_rsi_candle_all_in_one.mq4

 

Hallo Mladen,

vielen Dank für deine Hilfe. Jetzt funktioniert es

Mit freundlichen Grüßen,

Thomas

mladen:
Der erste Parameter von nonlag schaf trend cycle ist "TimeFrame". Er fehlt im iCustom-Aufruf. Der iCustom()-Aufruf sollte wie folgt aussehen: iCustom(Symbol(),0, "NonLag_Schaff_TrendCycle","",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,0,bar);
 

Hallo, Mladen!

Wenn neue Build lange tut die Optimierung.

Wenn ich zu Build 670 zurückkehre, ist die Optimierungsgeschwindigkeit gut.

Was könnte das Problem sein?

experttsi.mq4

tsi.mq4

Dateien:
experttsi.mq4  2 kb
tsi.mq4  4 kb
 
QuantF:
Hallo, Mladen!

Wenn neue Build lange tut die Optimierung.

Wenn Sie zu Build 670 zurückkehren, ist die Optimierungsgeschwindigkeit gut.

Was könnte das Problem sein?

experttsi.mq4

tsi.mq4

Löschen Sie zunächst im TSI-Indikator die Zeile, die wie folgt lautet:

#property strict

Mit dieser Zeile wird es nicht funktionieren

______________

Für den Rest: wir alle sollten hoffen und beten. Mit jedem neuen Build wird das Backtesting langsamer und langsamer und langsamer (siehe Beschwerde über Build 840). Es kann nicht viel getan werden. Es ist so weit gekommen, dass das visuelle Backtesting schneller ist als das reguläre Backtesting (ich benutze Build 788) und es gibt überhaupt keine Logik darin

 

Hallo Pro Coders,

aus irgendeinem Grund schließt mein EA Positionen, eröffnet aber keine neuen, nachdem sich der Trend geändert hat. Könnte sich das bitte jemand ansehen?

Ich danke Ihnen im Voraus!

//----------------------- 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

}

}

}

}

Dateien:
trendcycle.jpg  97 kb
 
tfi_markets:
Hallo Pro Coders,

Aus irgendeinem Grund schließt mein EA Positionen, eröffnet aber keine neuen, nachdem sich der Trend geändert hat. Könnte sich das bitte mal jemand ansehen?

Ich danke Ihnen im Voraus!

//----------------------- 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

}

}

}

}

In diesem Code gibt es keinen Code, der eine Position öffnen würde(die OrderSend()-Funktion wird darin überhaupt nicht verwendet)

 
mladen:
Firs in TSI Indikator löschen Sie die Zeile, die wie folgt geht:

#property strict

Mit dieser Zeile wird es nicht funktionieren

______________

Für den Rest: wir sollten alle hoffen und beten. Mit jedem neuen Build wird das Backtesting langsamer und langsamer und langsamer (siehe Beschwerde über Build 840). Es kann nicht viel getan werden. Es ist so weit gekommen, dass das visuelle Backtesting schneller ist als das reguläre Backtesting (ich benutze Build 788) und es gibt überhaupt keine Logik darin

Danke für die Antwort!

Klar. Ich bleibe in einem alten Build.

 
mladen:
In diesem Code gibt es keinen Code, der eine Position überhaupt öffnen würde (die Funktion OrderSend() wird darin überhaupt nicht verwendet)

Hallo Mladen,

Sie haben Recht, bitte finden Sie den untenstehenden Code, der "OpenSell()" aufruft.

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

//| 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);

}

}

}

 

Liebe mladen, mrtools, ich warte auf Ihre Antwort auf meine Fragen zum fxultratrend-Indikator im obigen Beitrag.

Ich hoffe, Sie werden mich nicht enttäuschen.

danke.