:) Спасибо! Перезагрузка терминала не помогла, но перезагрузка собственных мозгов - ещё как! Я в советнике использую различные блоки - торговый, блок определения критериев, блок переменных, блок доп. функций и т.д., подключаемых инклудом ... Так я изменял блок торговых критериев "Критерии", а надо было "Критерии01". Вот и весь фокус... :)
ЗЫ. А я уж в барабашек поверил... :) А нужно было просто поспать...
itum: ОЧЕНЬ ВАС ПРОШУ ПОМОГИТЕ !!! В следующем коде я проверяю был ли ордер прибыльный или нет ! Если нет то я подсчитываю количество !! Если первая сделка была убыточна то запускается цикл по подсчитыванию и добавляется вечно.
Но тут такой прикол !!! Что Если сделка прибыльна то все последующие убыточные ордера подсчитывает нормально ....
double orderProf; // Счетчик количества убыточных сделок
double CalculateLots(){ double Res=0.01; bool bProfit=true; int PrevTime=-1; double tmpLots; for (int i=0;i<OrdersHistoryTotal();i++){ if (!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue; if (OrderSymbol()!=Symbol()) continue; if (OrderCloseTime()<PrevTime) continue; PrevTime=OrderCloseTime(); if (OrderProfit()>0){bProfit=true; orderProf=0;} if (OrderProfit()<0) {bProfit=false; orderProf++;} tmpLots=OrderLots(); }
return(Res); }
Давали ж ссыль на Игоря Кима... Там для ваших нужд оч-чень много нужностей...
Индикатор в самом конце кода создает объект, который служит флагом для другого индикатора.
Надо, после создания объекта, "усыпить" индикатор, скажем, на 5 сек, после чего удалить объект и усыпить уже сек. на 60, после чего он перейдет к последнему ретурну и с новым тиком начнет сначала.
Пытаюсь делать так
int pauseT=0, //
pause01=0, // время первой паузы
pause02=0; // время второй паузыif (ObjectFind("signalG")==1) // проверка наличия
pause01=TimeLocal()+5; //
{while (TimeLocal()<pause01) // цикл сравнения
{pauseT=TimeLocal()+1;} // чем бы его занять?????ObjectDelete("signalG");}
if (ObjectFind("signalG")==-1) // повтор всего для 2-ой паузы
pause02=TimeLocal()+15;
while (TimeLocal()<pause02)
{pauseT=TimeLocal()+1;}
Индикатор в самом конце кода создает объект, который служит флагом для другого индикатора.
Надо, после создания объекта, "усыпить" индикатор, скажем, на 5 сек, после чего удалить объект и усыпить уже сек. на 60, после чего он перейдет к последнему ретурну и с новым тиком начнет сначала.
Abzasc: В качестве таймера? Он впадет в летаргический сон :)
Ну... когда нужно будет - пощекотать его - проснётся... :) Ладно - это всё оффтоп. Если б поподробней суть... А то - один разбудить, второй уложить, третий пригвоздить... А покормить? ... :)
вы сравниваете с номером подокна индюкатора. А если их будет два? Лучше сравнивать с переменной, которой присваивается номер подокна нужного индюкатора.
Я так ищу:
int WinID=WindowFind("A/D"); // Номер окна AD
А потом уже проверяю наличие подокна:
// --------------- Начертим восходящую трендовую линию (DN - экстремумы) --------------------- if (WinID>0) // Если окно индикатора есть на чарте (оно может иметь любой номер, кроме 0)
{
if (ObjectFind("Trend_GLine_DN")<0) // Если объект ещё не построенObjectCreate("Trend_GLine_DN",OBJ_TREND,WinID,LowestTDN,LowestPeakDN,HighestTDN,HighestPeakDN);
ObjectSet("Trend_GLine_DN",OBJPROP_COLOR,Lime);
ObjectSet("Trend_GLine_DN",OBJPROP_TIME1,LowestTDN);
ObjectSet("Trend_GLine_DN",OBJPROP_PRICE1,LowestPeakDN);
ObjectSet("Trend_GLine_DN",OBJPROP_TIME2,HighestTDN);
ObjectSet("Trend_GLine_DN",OBJPROP_PRICE2,HighestPeakDN);
}
Попробуй перегрузить терминал.
:) Спасибо! Перезагрузка терминала не помогла, но перезагрузка собственных мозгов - ещё как! Я в советнике использую различные блоки - торговый, блок определения критериев, блок переменных, блок доп. функций и т.д., подключаемых инклудом ... Так я изменял блок торговых критериев "Критерии", а надо было "Критерии01". Вот и весь фокус... :)
ЗЫ. А я уж в барабашек поверил... :) А нужно было просто поспать...
ОЧЕНЬ ВАС ПРОШУ ПОМОГИТЕ !!! В следующем коде я проверяю был ли ордер прибыльный или нет ! Если нет то я подсчитываю количество !!
Если первая сделка была убыточна то запускается цикл по подсчитыванию и добавляется вечно.
Но тут такой прикол !!! Что Если сделка прибыльна то все последующие убыточные ордера подсчитывает нормально ....
double orderProf; // Счетчик количества убыточных сделок
double CalculateLots(){
double Res=0.01;
bool bProfit=true;
int PrevTime=-1;
double tmpLots;
for (int i=0;i<OrdersHistoryTotal();i++){
if (!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;
if (OrderSymbol()!=Symbol()) continue;
if (OrderCloseTime()<PrevTime) continue;
PrevTime=OrderCloseTime();
if (OrderProfit()>0){bProfit=true; orderProf=0;} if (OrderProfit()<0) {bProfit=false; orderProf++;}
tmpLots=OrderLots();
}
return(Res);
}
Давали ж ссыль на Игоря Кима... Там для ваших нужд оч-чень много нужностей...
ДАК ! Там одно и тоже что у меня ....
ПРОБЛЕМА в том что первый раз оно не нормально подсчитывает, а дальше нормально.... )))
помогите ...
Заморочка такого плана.
Индикатор в самом конце кода создает объект, который служит флагом для другого индикатора.
Надо, после создания объекта, "усыпить" индикатор, скажем, на 5 сек, после чего удалить объект и усыпить уже сек. на 60, после чего он перейдет к последнему ретурну и с новым тиком начнет сначала.
Пытаюсь делать так
Зависает, пока, видимо, не закончится while.
Подскажите что нить умное.
Заморочка такого плана.
Индикатор в самом конце кода создает объект, который служит флагом для другого индикатора.
Надо, после создания объекта, "усыпить" индикатор, скажем, на 5 сек, после чего удалить объект и усыпить уже сек. на 60, после чего он перейдет к последнему ретурну и с новым тиком начнет сначала.
Пытаюсь делать так
Зависает, пока, видимо, не закончится while.
Подскажите что нить умное.
Кувалда... :):)
В качестве таймера? Он впадет в летаргический сон :)
Ладно - это всё оффтоп. Если б поподробней суть... А то - один разбудить, второй уложить, третий пригвоздить...
А покормить? ... :)
поподробней суть
Сделать паузу в индикаторе. Типа sleep"a.
А чем Sleep не нравится?
и ещё - при проверке наличия объекта
вы сравниваете с номером подокна индюкатора. А если их будет два?Лучше сравнивать с переменной, которой присваивается номер подокна нужного индюкатора.
Я так ищу:
А потом уже проверяю наличие подокна:
А чем Sleep не нравится?
А если их будет два?
Не будет. Как раз от лишних окон и избавляюсь.
Проверка потом, правда, понадобится, но, надеюсь, уже для советника :) спасибо, запишем.