Мусорить зачем, ты уже ведь начал одну тему и получил ответ, если не понял до конца, так мог там же уточнить.
if(RedBuffer[0]!=0)
будет выглядеть так
if( iCustom( string symbol, int timeframe, string name, ... , int mode, int shift) !=0
(инструмент, таймфрейм," имя индикатора", ... параметры индикатора, номер буфера с которого получаешь данные, индекс бара на котором интересуещее тебя значение индикатора)
у тебя внешних переменных нет, так что многоточие опускаешь, и будет так
iCustom( NULL,0,"индюк", 0,0)
это для значения RedBuffer на инструменте графика к которому прикреплен советник (NULL), с таймфремом графика к которому прикреплен советник (0), вместо слова "индюк" нужно вставить наименование индикатора, первый ноль - индекс буфера из которого берутся значения, второй ноль - индекс бара (свечи) где берутся значения.
Я прошу извинения за мусор -- не очень хорошо разобрался как функционирует форум ( новичок однако )
За ответ очень благодарен !!!
За ответ очень благодарен !!!
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Объясните пожалуйста на данном примере:
У меня есть индикатор который дает два сигнала -- на покупку и на продажу.
//------------------------------------------------------------------------------------------------------------- #property copyright "Serghei" #property link "" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Red #property indicator_color2 Lime //---- buffers //---- indicator buffers double RedBuffer[]; double LimeBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- additional buffers are used for counting IndicatorBuffers(2); //---- indicator buffers mapping SetIndexBuffer(0, RedBuffer); SetIndexBuffer(1, LimeBuffer); //---- drawing settings SetIndexStyle(0,DRAW_ARROW); SetIndexStyle(1,DRAW_ARROW); //---- IndicatorDigits(2); SetIndexDrawBegin(0,10); SetIndexDrawBegin(1,10); //---- name for DataWindow and indicator subwindow label IndicatorShortName("Sample Open Close"); SetIndexArrow(0, 233); SetIndexArrow(1, 234); return(0); } int start() { int limit; int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; // Если RedBuffer[i]=0 --- сигнала нет // иначе сигнал на покупку for(int i=0; i<limit; i++){ if(Close[i]>Open[i]){ if(Open[i+1]>Close[i+1]){ if((Close[i]>Open[i+1])&&(Open[i]<Close[i+1])){ RedBuffer[i]=Low[i]; }else{ RedBuffer[i]=0; } } } } // Если LimeBuffer[i]=0 --- сигнала нет // иначе сигнал на продажу for(i=0; i<limit; i++){ if(Open[i]>Close[i]){ if(Close[i+1]>Open[i+1]){ if((Open[i]>Close[i+1])&&(Close[i]<Open[i+1])){ LimeBuffer[i]=High[i]; }else{ LimeBuffer[i]=0; } } } } return(0); } //-------------------------------------------------------------------------------------------------------------Вопрос :
Как передать эти два параметра ( RedBuffer[i], LimeBuffer[i] ) из индикатора
в следующий советник, который должен на основе этих данных
совершить сделку. Если есть несколько способов это сделать - объясните
пожалуйста подробнее.
//------------------------------------------------------------------------------------------------------------ #property copyright "Serghei" #property link "" //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ extern double StopLoss = 6; extern double TakeProfit = 8; extern double Lots = 0.1; int init() { return(0); } int deinit() { return(0); } int start() { if ((Bars<100) return(0); // на графике менее 200 баров - выходим if (AccountFreeMargin()<100) return(0); // денег нет - выходим if(RedBuffer[0]!=0) OrderSend(Symbol(),OP_BUY ,Lots,Ask ,0,Ask-StopLoss*Point ,Ask+TakeProfit *Point,"Мои ордер OP_BUY" ,1,0,Red); if(LimeBuffer[0]!=0) OrderSend(Symbol(),OP_SELL,Lots,Bid,0,Bid+StopLoss*Point,Bid-TakeProfit*Point,"Мои ордер OP_SELL",2,0,Yellow); Sleep(10000); return (0); } //------------------------------------------------------------------------------------------------------------