Roger: За эту минуту советник откроет ему до сорока ордеров.
А если первый не откроет? Следующий сигнал час ждать? Нормально:
Есть сигнал --> Проверили, есть ли ордер/позиция, установленный/открытая на данной свече, нету --> ставим/открываем, есть --> значит и не нужно больше.
Здравствуйте друзья. Подскажите пожалуйста как получить значение цвета индикатора на предыдущей свече и записать это в переменную, ну например если красный то double col =1, если желтый то 2, если зеленый то 3. Вроде несложно пробовал по разному не получается. Я так понял значение цвета зависит от наличия единицы в буфере, но почему то не получается вытащить именно последнее зафиксированное значение т.е. на действующей свече он постоянно меняет цвет при появлении новой свечи предыдущая закрывается последним действовавшим цветом. Как его узнать ?)
#property indicator_separate_window#property indicator_minimum 0#property indicator_maximum 1#property indicator_buffers 3#property indicator_color1 DarkGreen#property indicator_color2 Crimson#property indicator_color3 Yellow//---- indicator parameters externint RSI=8;
externint valeur1=55;
externint valeur2=45;
//---- indicator buffersdouble ExtBuffer1[];
double ExtBuffer2[];
double ExtBuffer3[];
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init()
{
//---- drawing settings
SetIndexStyle (0,DRAW_HISTOGRAM, EMPTY,4,DarkGreen);
SetIndexBuffer(0,ExtBuffer1);
SetIndexStyle (1,DRAW_HISTOGRAM, EMPTY,4,Crimson);
SetIndexBuffer(1,ExtBuffer2);
SetIndexStyle (2,DRAW_HISTOGRAM, EMPTY,4,Yellow);
SetIndexBuffer(2,ExtBuffer3);
//---- names
IndicatorShortName("RSI above/under 45/55");
SetIndexLabel(0,"RSI"+RSI +" is above 55");
SetIndexLabel(1,"RSI"+RSI +" is under 45");
SetIndexLabel(2,"RSI is in the mid zone ");
//---- initialization donereturn(0);
}
//+------------------------------------------------------------------+//| Moving Averages |//+------------------------------------------------------------------+int start()
{
int limit;
int counted_bars=IndicatorCounted();
//---- last counted bar will be recountedif(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- macd counted in the 1st bufferfor(int i=0; i<limit; i++)
if (iRSI(NULL,0,RSI,PRICE_CLOSE,i)<=valeur2)
{
ExtBuffer2[i]=1;
}
elseif (iRSI(NULL,0,RSI,PRICE_CLOSE,i)>=valeur1)
{
ExtBuffer1[i]=1;
}
else
ExtBuffer3[i]=1;
return(0);
}
Здравствуйте друзья. Подскажите пожалуйста как получить значение цвета индикатора на предыдущей свече и записать это в переменную, ну например если красный то double col =1, если желтый то 2, если зеленый то 3. Вроде несложно пробовал по разному не получается. Я так понял значение цвета зависит от наличия единицы в буфере, но почему то не получается вытащить именно последнее зафиксированное значение т.е. на действующей свече он постоянно меняет цвет при появлении новой свечи предыдущая закрывается последним действовавшим цветом. Как его узнать ?)
int col;
int start()
{
int limit;
int counted_bars=IndicatorCounted();
//---- last counted bar will be recountedif(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- macd counted in the 1st bufferfor(int i=0; i<limit; i++)
if (iRSI(NULL,0,RSI,PRICE_CLOSE,i)<=valeur2)
{
ExtBuffer2[i]=1;if(i=1)col =1;return;
}
elseif (iRSI(NULL,0,RSI,PRICE_CLOSE,i)>=valeur1)
{
ExtBuffer1[i]=1;if(i=1)col =3;return;
}
else
{
ExtBuffer3[i]=1;
if(i=1)col =2;
}
return(0);
}
Всё сугубо на моих догадках и лишь предположительно:
int start() {
Comment(Info()); // Вывод какой-то информации на экранint KOL_BUY = order_total(0); // Подсчёт количества Buy-позицийint KOL_SELL = order_total(1); // Подсчёт количества Sell-позицийdouble l;
if (order_total()==0) { // Если количество ордеров равно нулю
open(0,Lot,0,TP); // Открываем Buy лотом Lot скорее всего без стопа, но с тейком
open(1,Lot,0,TP); // Открываем Sell лотом Lot скорее всего без стопа, но с тейком
}
if (KOL_BUY==0 && KOL_SELL!=0) { // Если нет Buy и есть Sell
open(0,Lot,0,TP); // Открываем Buy лотом Lot скорее всего без стопа, но с тейком
l=last_trade(1); // Берём лот прошлой Sell
open(1,l,0,0); // Открываем Sell лотом прошлой Sell скорее всего без стопа и тейка
modify_orders(1); // Что-то модифицируем в Sell (в какой и что - не понятно)
}
if (KOL_BUY!=0 && KOL_SELL==0) { // Если нет Sell и есть Buy
open(1,Lot,0,TP); // Открываем Sell лотом Lot скорее всего без стопа, но с тейком
l=last_trade(0); // Берём лот прошлой Buy
open(0,l,0,0); // Открываем Buy лотом прошлой Buy скорее всего без стопа и тейка
modify_orders(0); // Что-то модифицируем в Buy (в какой и что - не понятно)
}
return(0); // Выход из start()
}
За эту минуту советник откроет ему до сорока ордеров.
А если первый не откроет? Следующий сигнал час ждать? Нормально:
Есть сигнал --> Проверили, есть ли ордер/позиция, установленный/открытая на данной свече, нету --> ставим/открываем, есть --> значит и не нужно больше.
Так контролировать нужно...либо кол-во ордеров, либо только первое обращение к функции..
Значит уже не одна строка, как у тебя.
extern int SecondsAfterTheBar = 0; int start(){ ... if(NewBar() == TRUE){ ... } return(0); } bool NewBar(){ RefreshRates(); static bool initial = FALSE; static datetime stat_dtime = 0; if ((TimeCurrent() - stat_dtime >= Time[0] - Time[1] + SecondsAfterTheBar) == TRUE){ stat_dtime = Time[0]; if (initial == TRUE){ return(TRUE); }else{ initial = TRUE; } } return(FALSE); }Видно опоздал, но все равно может кому пригодится моё решение:
Видно опоздал, но все равно может кому пригодится моё решение:
Спасибо и тебе. Боле универсально, если
bool NewBar( datetime SecondsAfterTheBar = 0 )
Тогда при вызове можно указать запаздывание в секундах.
Здравствуйте друзья. Подскажите пожалуйста как получить значение цвета индикатора на предыдущей свече и записать это в переменную, ну например если красный то double col =1, если желтый то 2, если зеленый то 3. Вроде несложно пробовал по разному не получается. Я так понял значение цвета зависит от наличия единицы в буфере, но почему то не получается вытащить именно последнее зафиксированное значение т.е. на действующей свече он постоянно меняет цвет при появлении новой свечи предыдущая закрывается последним действовавшим цветом. Как его узнать ?)
вот этот цвет:
Спасибо за ответ.
Здравствуйте друзья. Подскажите пожалуйста как получить значение цвета индикатора на предыдущей свече и записать это в переменную, ну например если красный то double col =1, если желтый то 2, если зеленый то 3. Вроде несложно пробовал по разному не получается. Я так понял значение цвета зависит от наличия единицы в буфере, но почему то не получается вытащить именно последнее зафиксированное значение т.е. на действующей свече он постоянно меняет цвет при появлении новой свечи предыдущая закрывается последним действовавшим цветом. Как его узнать ?)
Это условие на открытие ордеров??? Я правильно понимаю
Это условие на открытие ордеров??? Я правильно понимаю
Ето условие на все что душе угодно, так как можно только догадываться что делают ети пользовательские функции по их названиям
Всем привет... Ребят подскажите что тут написано
int start()
...
return(0);
Всё сугубо на моих догадках и лишь предположительно: