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

 
PariaH:

Скажите пожалуйста, как открыть новый ордер если сработал СтопЛосс или ТР. Желательно код! Заранее СПС!!!

Откройте любой код советника из https://www.mql5.com/ru/code

или откройте код советника, поставляемого в комплекте с МТ4, например, Moving Average.mq4.

Там, если внимательно посмотрите, увидите, как это делается.

После этого можно будет поговорить.

 

Там, если внимательно посмотрите, увидите, как это делается.

После этого можно будет поговорить.

Это не совсем тот ответ которого я ожидал... мне нужен конкретный пример, а не полный код программы...

 
alexhammer:

Вот накидал сегодня набросочек нового советника, пишу под себя,но если получится всё нормально поделюсь потом.

Интересует ваше мнение, чего бы ещё туда добавить. Сейчас умеет переставлять стопы и тейки, двигаете мышкой линии на экране, показывает открытые ордера, ну и будет ещё статистика по счёты, а самое главное прикручу несколько вариантов трейлинг стопов и чтобы визуально отображалось их перемещение. Какие ещё быдут заявки?

Получилось симпатичненько :).

Научить советник хотя бы не сливать депозит.

Красивый советник - не гарантия красивой жизни.

 
PariaH:

Там, если внимательно посмотрите, увидите, как это делается.

После этого можно будет поговорить.

Это не совсем тот ответ которого я ожидал... мне нужен конкретный пример, а не полный код программы...

//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
   double ma;
   int    res;
//---- go trading only for first tiks of new bar
   if(Volume[0]>1) return;
//---- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---- sell conditions
   if(Open[1]>ma && Close[1]<ma)  
     {
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);
      return;
     }
//---- buy conditions
   if(Open[1]<ma && Close[1]>ma)  
     {
      res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue);
      return;
     }
//----
  }
Это часть кода советника, поставляемого с МТ4.
 
coronel:

Научить советник хотя бы не сливать депозит.

Красивый советник - не гарантия красивой жизни.


Не надо меня тут учить насчёт советников! Это не торгующий советник если вы не поняли. А на экране демо счёт со специально открытыми ордерами, чтобы проверить работу этого советника.
 
alexhammer:

Не надо меня тут учить насчёт советников! Это не торгующий советник если вы не поняли. А на экране демо счёт со специально открытыми ордерами, чтобы проверить работу этого советника.

Прошу меня извинить, если мой пост прозвучал как нравоучение.

Высказал лишь свою точку зрения относительно автотрейдинга.

 
Да ладно МИР! :) просто ожидал услышать каких нибудь идей-пожеланий, не только для себя ведь стараюсь.
 
alexhammer:
Да ладно МИР! :) просто ожидал услышать каких нибудь идей-пожеланий, не только для себя ведь стараюсь.

Здесь на сайте идей немерено, мало не покажется, однако тех, кто зарабатывает на жизнь автотрейдингом, не знаю.

 
coronel:
Это часть кода советника, поставляемого с МТ4.


СПС... Но это опять не то :) дело в том что я не использую индикаторы... нужно просто открывать новый ордер если сробатывает СТОП или ПРЕФ! Как это можно реализовать другим способом...

вот часть кода.... но он не сробатывает ....

for(int i=1; i<=OrdersTotal(); i++) // ???? ???????? ?????

{

if (OrderSelect(i-1,SELECT_BY_POS)==true)

{

double SL=OrderStopLoss();

double TP =OrderTakeProfit(); // TP ?????????? ???.

double Price =OrderOpenPrice();

{

if(SL >= Price)

{

OrderSend(Symbol(), OP_BUY, lots,Ask, 3, Ask - stop_loss * Point, Bid + take_profit * Point, IDENT, MAGIC, 0, Green);

}

}

Alert(i);

}

}
 

 
PariaH:


СПС... Но это опять не то :) дело в том что я не использую индикаторы... нужно просто открывать новый ордер если сробатывает СТОП или ПРЕФ! Как это можно реализовать другим способом...

вот часть кода.... но он не сробатывает ....


Все тот же кусок кода, но без индикатора:

int start()
  {
   int    res;
//---- go trading only for first tiks of new bar
   if(Volume[0]>1) return;
//---- 
   if(OrdersTotal()==0)//если нет открытых ордеров
     { 
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);// открыть SELL
 //     res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue); //открыть BUY
     }
//----
 return(0);}

	          
Причина обращения: