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

 
rigonich:


Просто выставьте отложенный ордер с нужными вам параметрами.

P.S. В советнике -- сразу после открытия ордера. 

А код какой?
 
yosuf:
А код какой?


int  OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0,arrow_color=CLR_NONE)
Основная функция, используемая для открытия позиции или установки отложенного ордера.
Возвращает номер тикета, который назначен ордеру торговым сервером или -1 в случае неудачи. Чтобы получить дополнительную информацию об ошибке, необходимо вызвать функцию GetLastError().
Замечания.
При открытии рыночного ордера (OP_SELL или OP_BUY) в качестве цены открытия могут использоваться только самые последние цены Bid (для продажи) или Ask (для покупки). Если операция проводится по финансовому инструменту, отличному от текущего, то для получения последних котировок по этому инструменту необходимо воспользоваться функцией MarketInfo() с параметром MODE_BID или MODE_ASK. Нельзя использовать расчетную либо ненормализованную цену. Если запрашиваемой цены открытия не было в ценовом потоке либо запрашиваемая цена не нормализована в соответствии с количеством знаков после десятичной точки, то будет сгенерирована ошибка 129 (ERR_INVALID_PRICE). Если запрашиваемая цена открытия сильно устарела, то независимо от значения параметра slippage будет сгенерирована ошибка 138 (ERR_REQUOTE). Если же запрашиваемая цена устарела, но ещё присутствует в ценовом потоке, то позиция открывается по текущей цене и только в том случае, если текущая цена попадает в диапазон price+-slippage.

Цены StopLoss и TakeProfit не могут располагаться слишком близко к рынку. Минимальное расстояние стопов в пунктах можно получить, используя функцию MarketInfo() с параметром MODE_STOPLEVEL. В случае ошибочных, а также ненормализованных стопов генерируется ошибка 130 (ERR_INVALID_STOPS).

При установке отложенного ордера цена открытия не может быть слишком близкой к рынку. Минимальное расстояние отложенной цены от текущей рыночной цены в пунктах также можно получить, используя функцию MarketInfo() с параметром MODE_STOPLEVEL. В случае неправильной цены открытия отложенного ордера будет сгенерирована ошибка 130 (ERR_INVALID_STOPS).

На некоторых торговых серверах может быть установлен запрет на применение срока истечения отложенных ордеров. В этом случае при попытке задать ненулевое значение в параметре expiration будет сгенерирована ошибка 147 (ERR_TRADE_EXPIRATION_DENIED).

На некоторых торговых серверах может быть установлен лимит на общее количество открытых и отложенных ордеров. При превышении этого лимита новая позиция открыта не будет (отложенный ордер не будет установлен), и торговый сервер вернет ошибку 148 (ERR_TRADE_TOO_MANY_ORDERS).
Параметры:
symbol - Наименование финансового инструмента, с которым проводится торговая операция.
cmd - Торговая операция. Может быть любым из значений торговых операций.
volume - Количество лотов.
price - Цена открытия.
slippage - Максимально допустимое отклонение цены для рыночных ордеров (ордеров на покупку или продажу).
stoploss - Цена закрытия позиции при достижении уровня убыточности (0 в случае отсутствия уровня убыточности).
takeprofit - Цена закрытия позиции при достижении уровня прибыльности (0 в случае отсутствия уровня прибыльности).
comment - Текст комментария ордера. Последняя часть комментария может быть изменена торговым сервером.
magic - Магическое число ордера. Может использоваться как определяемый пользователем идентификатор.
expiration - Срок истечения отложенного ордера.
arrow_color - Цвет открывающей стрелки на графике. Если параметр отсутствует или его значение равно CLR_NONE, то открывающая стрелка не отображается на графике.
Пример:
  int ticket;
  if(iRSI(NULL,0,14,PRICE_CLOSE,0)<25)
    {
     ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-25*Point,Ask+25*Point,"My order #"+counter,16384,0,Green);
     if(ticket<0)
       {
        Print("OrderSend failed with error #",GetLastError());
        return(0);
       }
    }
 
lottamer:

и хотя в компиляторе-то ваш код  выдал 24 ошибки!!! все равно спасибо даже за небрежную помощь.... за идею... (теперь работает - хотя я в приципе так пытался делать но пунктуация подвела)


Я и не пытался его компилировать, а только расставил скобки! Иначе они вообще не работали. Я показал, как они должны быть.   Далше логика всё равно непонятна. Помнится, выставляя каждый следующий флаг, вы ,,спрашивали,, у ифа противоположное предидущему условие, одновременно проверяя на правдивость флаг...

Я собственно своим первым комментарием призывал вас сто раз пересмотреть то, что вы написали, сверяясь со справкой.  

 
подскажите новичку!!!!  советник откключен в терминале но сработал стоплосс возможно такое ?
 
tolik73:
подскажите новичку!!!!  советник откключен в терминале но сработал стоплосс возможно такое ?

Конечно.
 
tolik73:
подскажите новичку!!!!  советник откключен в терминале но сработал стоплосс возможно такое ?

Не возможно, а непременно. Стоплосс находится на сервере, и не зависит от работы вашего терминала, в отличие от трейлингстопа.
 
lottamer:

и хотя в компиляторе-то ваш код  выдал 24 ошибки!!! все равно спасибо даже за небрежную помощь.... за идею... (теперь работает - хотя я в приципе так пытался делать но пунктуация подвела)

вообще то это ваш код , частично исправленный другим человеком.
 
помогите написать скрипт чтоб каждую неделю по цене открытия недели на графике отображалась линия.
 

TarasBY

 int init()

{

 {
fGet_MineGV();
}
void fGet_MineGV (string fs_PrefName = "") // префикс имени переменной
{
string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1");
if (GlobalVariableCheck (ls_Name)) SUA = GlobalVariableGet (ls_Name);
ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
if (GlobalVariableCheck (ls_Name)) SUA1 = GlobalVariableGet (ls_Name);
ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3");
if (GlobalVariableCheck (ls_Name)) BUA = GlobalVariableGet (ls_Name);
ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
if (GlobalVariableCheck (ls_Name)) BUA1 = GlobalVariableGet (ls_Name);
//----
}

//... там еще много чего...

}  

 

вторая часть в  int start()

То что сделано - правильно? 

 


 

 
Macros:
помогите написать скрипт чтоб каждую неделю по цене открытия недели на графике отображалась линия.

Помогите или напишите? Если помогите, то что вы уже написали? 
Причина обращения: