Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Реализовать; индикатор NonLag_Schaff_TrendCycle:
Привет про-кодеры,
Прошу кого-нибудь помочь мне в реализации индикатора NonLag_Schaff_TrendCycle.
Экстерны индикатора:
extern int FastLength = 23;
extern int SlowLength = 50;
extern int StcPeriod = 10;
extern int MacdPrice = PRICE_CLOSE;
extern bool Interpolate = true;
extern bool MultiColor = true;
Буферы индикаторов:
IndicatorBuffers(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);
Я пытаюсь сделать что-то вроде:
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 BUY
if((STC1_c15)||(STC1_c85) -> SELL
Но я получаю сообщение об ошибке:
Ошибка: NonLag_Schaff_TrendCycle был удален.
Я предполагаю, что, возможно, я неправильно прочитал буферы. Есть ли у кого-нибудь предположение?
Заранее спасибо!Первым параметром цикла тренда nonlag schaf является "TimeFrame". Вам не хватает его в вызове iCustom. Вызов iCustom() должен выглядеть следующим образом:
iCustom(Symbol(),0, "NonLag_Schaff_TrendCycle","",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,0,bar);
Нужна помощь
Здравствуйте, Младен
спасибо за вашу прошлую помощь
Я пытался сделать этот индикатор, но он не появляется.
так что, пожалуйста, помогите мне снова
Заранее спасибо
mtf_rsi_candle_all_in_one.mq4
Здравствуйте, Младен,
большое спасибо за вашу помощь. Теперь все работает
С добрыми пожеланиями,
Томас
Первым параметром цикла тренда nonlag schaf является "TimeFrame". Вам не хватает этого параметра в вызове iCustom. Вызов iCustom() должен выглядеть следующим образом: iCustom(Symbol(),0, "NonLag_Schaff_TrendCycle","",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,0,bar);
Привет, Младен!
При новом билде долго происходит оптимизация.
Если вернуться к билду 670, то скорость оптимизации хорошая.
В чем может быть проблема?
experttsi.mq4
tsi.mq4
Привет, Младен!
Когда новый билд долго выполняет оптимизацию.
Если вернуться к билду 670, то скорость оптимизации хорошая.
В чем может быть проблема?
experttsi.mq4
tsi.mq4Сначала в индикаторе TSI удалите строку, которая выглядит следующим образом:
#property strict
С этой строкой он не будет работать
______________
Что касается остального: мы все должны надеяться и молиться. С каждым новым билдом бэктестинг идет все медленнее, медленнее и медленнее (см. жалобу на билд 840). Мало что можно сделать. Дошло до того, что визуальное бэктестирование быстрее обычного (я использую билд 788), и в этом нет никакой логики.
Здравствуйте Про Кодеры,
По какой-то причине мой советник закрывает позиции, но не открывает новые, после смены тренда. Не мог бы кто-нибудь любезно взглянуть?
Заранее спасибо!
//----------------------- 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
}
}
}
}
Привет Про Кодеры,
по какой-то причине мой советник закрывает позиции, но не открывает новые, после того как тренд изменился. Не мог бы кто-нибудь любезно взглянуть?
Заранее спасибо!
//----------------------- 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
}
}
}
}
В этом коде вообще нет кода, который бы открывал позицию(функция OrderSend() в нем вообще не используется).
Сначала в индикаторе TSI удалите строку, которая выглядит так :
#property strict
С этой строкой он не будет работать
______________
Для остальных: мы все должны надеяться и молиться. С каждым новым билдом бэктестинг идет все медленнее и медленнее (см. жалобу на билд 840). Мало что можно сделать. Дошло до того, что визуальный бэктестинг быстрее обычного (я использую билд 788), и в этом нет никакой логики.Спасибо за ответ!
Чисто. Я остаюсь в старом билде.
В этом коде нет кода, который бы вообще открывал позицию (функция OrderSend() в нем вообще не используется)
Здравствуйте, Младен,
Вы правы, пожалуйста, найдите код ниже, который вызывает "OpenSell()".
//+------------------------------------------------------------------+
//| 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);
}
}
}
уважаемые mladen, mrtools жду вашего ответа на мои вопросы по индикатору fxultratrend в сообщении выше.
надеюсь, вы меня не разочаруете.
спасибо.