[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 232

 
Vit1986:

Сделал демо-счет, скачал котировки (SP500, RTSI, SBER и тд). Создал банального советника. Решил проверить его. Но тест на SP500 работает идеально, а вот на SBER, RTSI – отказывается работать (открывает один ордер и заканчивает свою работу), ошибок ни каких не выдает.


1. Это скорее похоже на скрипт, а не на советник.

2. Проверьте количество денег на дэмке после хода двадцатью лотами.

3. Попробуйте типа OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-MarketInfo(Symbol(),MODE_STOPLEVEL)*Point,Bid+MarketInfo(Symbol(),MODE_STOPLEVEL)*Point);

4. Допишите обработчик ошибок, хотя бы элементарный Alert (GetLastError()); 

5. Ориентируйтесь на мануал.

 

Можно ещё перестраховаться и явно указать типы данных:

int cmd = OP_SELL;//торговая операция
double volume = 0.1;//лот
int slippage = 2;//отклонение ордера в пипсах
double stoploss = 0;//лось
double takeprofit = 0;//профит

int start(){
   OrderSend(Symbol(),cmd,volume,Bid,slippage,stoploss,takeprofit); 
  return(0);
}
 
GaNDarM:

Почему в ф-ции INIT () переменным присваивается нуль? В чем ошибка или как присвоить переменным значения цены покупки и цены продажи за пределами ф-ции start()? Я пробовал ставить перед ними RefreshRates();, но изменений нет:( 

Вот код в init() индикатора:

init()
{
    Print ("Ask = ", Ask, " | Bid = ", Bid);
}

а вот лог: 

2013.03.19 17:49:27     i-PSI@Dash Board EURUSD,M15: Ask = 1.2932 | Bid = 1.293

О чём Вы "плачетесь"???

 
gyfto:

GaNDarM

 Ветка

спасибо
 
TarasBY:

Вот код в init() индикатора:

а вот лог: 

О чём Вы "плачетесь"???


"Плачусь" я об этом:

//---Ф-ЦИЯ init()----------------------------------------------------
int init()
  {
   RefreshRates();// обновляем данные по ценам
   UpL  =  Ask;     // Пик вверх изначально равен цене покупки
   DownL  =  Bid;     // Пик вниз изначально равен цене продажи
   Print ("СРАБОТАЛА Ф_ЦИЯ ИНИТ: DownL = ", DownL, " UpL = ", UpL);
   
   SetIndexStyle(0,DRAW_SECTION);     // стиль линии: отрезки между непустыми значениями
   SetIndexBuffer(0,ExtMapBuffer1);     // привязываем массив к номеру буфера
   SetIndexEmptyValue(0,0.0);     // указываем при каком значении не надо ничего рисовать
   //---
   
   return(0);
  }

 а вот лог:

18:25:09 IndikatorZZ GBPJPY,Daily: СРАБОТАЛА Ф_ЦИЯ ИНИТ: DownL = 0 UpL = 0 

 
Не подскажете.
Если идёт торговля "интрадей" означает ли это, что сделка не переноситься на следующий день и принудительно закрывается в конце дня?
 

уже сколько раз пользовался автопунктом, но первый раз нефига не работает.

Вот Init()

 

int init()
{
   if (Digits == 2 || Digits == 4)
     pt = Point;
   if (Digits == 1 || Digits == 3 || Digits == 5)
     pt = Point * 10;
 
  return (0);
}

В любом месте программы прописываю(в данном случае уже даже в старте для эксперимента):

Print("ptStart = ", pt);
Print("PointStart = ", Point);

 В журнал возвращается:

2013.03.19 19:55:35     2013.01.11 00:00  TradingByLine EURUSD.GI,M5: Point = 0
2013.03.19 19:55:35     2013.01.11 00:00  TradingByLine EURUSD.GI,M5: pt = 0

 Где логика? 

 

Здравствуйте. Подскажите пожалуйста  можно ли  заменить значение  "  >= "  на просто  " = " . В советнике убираю " <"  или " >"  а оставляю только " =" при компиляции выдаёт ошибки.

 

например : у меня в сове прописано (price >= MA) а хотелось бы (price = MA) .ТОЛЬКО РАВНО 

 
artemka_1981:

Здравствуйте. Подскажите пожалуйста  можно ли  заменить значение  "  >= "  на просто  " = " . В советнике убираю " <"  или " >"  а оставляю только " =" при компиляции выдаёт ошибки.

 

например : у меня в сове прописано (price >= MA) а хотелось бы (price = MA) .ТОЛЬКО РАВНО 

==
 
TarasBY:
==

ОГРОМНОЕ СПАСИБО