Jump to content

Напишу индикатор, советника... (БЕСПЛАТНО)


Recommended Posts

Ugar68
Выбираете ордер с помошью функции Orderselect() и сравниваете OrderClosePrice этого ордера с TP или со SL этого же ордера (OrderTakeProfit и OrderStopLoss) Вот и все!!!

 

Так лучше не делать. Ордер может быть закрыт с гэпом. Тогда цена закрытия не будет совпадать ни стейком ни с лосём.

Лучше использовать OrderProfit() и смотреть его значение отрицательное или положительное.

Многие ДЦ добавляют в комментарий ордера [sl] или [tp] после закрытия. Можно произвести поиск подстроки в комментарии ордера.

Вместе с OrderProfit() можно выяснить всё.


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Link to post
Share on other sites
  • Replies 15.1k
  • Created
  • Last Reply

Top Posters In This Topic

  • expforex2

    1049

  • lukas1

    578

  • Ugar68

    546

  • -Алексей-

    330

Top Posters In This Topic

Popular Posts

Молодой человек, если хотите, чтобы на Вас обратили внимание, то Вам просто жизненно необходимо сделать для начала следующие вещи: 1. Выключить CapsLock 2. Выучить русский язык хотя бы на уровне 7-г

Держи. OHLCDrawLine.rar

Posted Images

Pifagor76

День добрый, уважаемые программисты. Есть такой индикатор ATR_the_But. Используется в торговой системе летучая мышь (наверняка о ней слышали). Просьба сделать скрипт, который при запуске на основании этого индикатора выставлял бы отложенные стоповые ордера (на пробой) на N пунктов от уровней, рисуемых индикатором. Если в момент запуска скрипта рисуется красная линии сопротивления (Resistance), то выставляется ордер BuyStop на N пунктов выше этой линии, если же в момент запуска скрипта рисуется синяя линия поддержки (Support), то соответственно выставляется ордер SellStop на N пунктов ниже линии. Поскольку с каждым новым баром линия сдвигается, то и отложенный ордер должен модифицироваться (цена открытия и соответственно TP и SL). В настройках должно быть: объем лота, величина TP и SL, проскальзывания. Надеюсь у кого-нибудь из знатоков MQL найдется свободное время и желание реализовать данный скрипт. Заранее благодарен.

С уважением, Андрей.

ATR_The_bat.rar

Link to post
Share on other sites
kazakov.v
День добрый, уважаемые программисты. Есть такой индикатор ATR_the_But. Используется в торговой системе летучая мышь (наверняка о ней слышали)...

 

На Адмирале вроде такой советник был :roll:


Никому верить нельзя.

Мне - можно.

 

Link to post
Share on other sites
ALekS81

Ребята- программисты,помогите переделать советник.Советник выставляет стоповые ордера,но не удаляет противоположный при срабатывании одного из ордеров.Помогите сделать так,чтобы при срабатывании (к примеру)ордера baystop, его собрат sellstop удалялся и наоборот.ЗАРАНИЕ БЛАГОДАРЕН!!

:ahelp:!

Set2StopOrders.rar

Link to post
Share on other sites
ceppqq58
Чем например стимулировать?!
Да,скажи скока стоит и вперед,но сначала,что ты можешь?
Link to post
Share on other sites
-Алексей-
можете мне написать советник под индикатор

http://s40.radikal.ru/i089/1104/e0/45de6eb17932.jpg

Ты думаешь что он ставит стрелки во время открытия бара???

Сначала по-наблюдай, убедись, что стрелки ставятся во-время, в чём я очень сомневаюсь.

Link to post
Share on other sites
ceppqq58

НУ ЧТО ГОСПОДА ПРОГРАМИСТЫ,НИКОГО ТАК И НЕТ...КТОНТЬ ВОЗМЁТ ЕЩЁ ТЗ В ДОБРЫЕ РУКИ???ИЛИ К КИТАЙЦАМ ОБРАЩАТЬСЯ?

ТЕХЗАД.rar

Link to post
Share on other sites
Sevrer
НУ ЧТО ГОСПОДА ПРОГРАМИСТЫ,НИКОГО ТАК И НЕТ...КТОНТЬ ВОЗМЁТ ЕЩЁ ТЗ В ДОБРЫЕ РУКИ???ИЛИ К КИТАЙЦАМ ОБРАЩАТЬСЯ?

Молодой человек, если хотите, чтобы на Вас обратили внимание, то Вам просто жизненно необходимо сделать для начала следующие вещи:

1. Выключить CapsLock

2. Выучить русский язык хотя бы на уровне 7-го класса

3. Почитать классическую литературу, чтобы научиться внятно выражать свои мысли

4. Научиться уважать своего собеседника (в том числе и потенциального)

 

 

PS

То, что ты хочешь, в каком-то виде есть у меня, НО! Тебе я даже предлагать не буду, такого клиента как ты, надо обходить за 1000 верст.

 

Удачи с китайцами.

  • Thanks 3
Link to post
Share on other sites
expforex2
Молодой человек, если хотите, чтобы на Вас обратили внимание, то Вам просто жизненно необходимо сделать для начала следующие вещи:

1. Выключить CapsLock

2. Выучить русский язык хотя бы на уровне 7-го класса

3. Почитать классическую литературу, чтобы научиться внятно выражать свои мысли

4. Научиться уважать своего собеседника (в том числе и потенциального)

 

 

PS

То, что ты хочешь, в каком-то виде есть у меня, НО! Тебе я даже предлагать не буду, такого клиента как ты, надо обходить за 1000 верст.

 

Удачи с китайцами.

:ora: :-)


Ищите программиста? могу помочь..

Link to post
Share on other sites
Pifagor76
На Адмирале вроде такой советник был :roll:

Да, на форуме Адмирала я просил Скриптонга написать советника с использованием данного индикатора и модифицированного ZZ. Советник был им создан в несколько иной интерпретации. На данный момент торгую вручную на пробой уровней, используя некоторые фильтры для входа, но приходится постоянно вручную модифицировать отложенные стоповые ордера. Хотелось бы автоматизировать этот момент. Спасибо за внимание. С уважением, Андрей

Link to post
Share on other sites
zedsergei

м..дам)

Link to post
Share on other sites
baronel

здрасте :) ....может кто посмотрит в чем моя ошибка???? компилятор пишет что не хватает левой скобки....дисбаланс видите-ли....но где...никак не могу понять :(

//------------------------------------

/*

Описание:

.. выставляет ордера на High и Low предыдущей свечи.

Рыночные, по цене High-buy, по цене Low-sell.

 

Настройки:

*/

extern int TP = 13;//TakeProfit ордеров.

extern int SL = 17;//StopLoss ордеров.

extern double lot = 0.1;//объём позиций.

extern int Magic_Number = 1;//уникальный идентификатор эксперта.

 

int init(){ return(0);}

int deinit(){ return(0);}

int start()

{

if(Orders_Total_by_type(OP_BUY, Magic_Number, Symbol() == 0 )||if(Orders_Total_by_type(OP_SELL, Magic_Number, Symbol() == 0 )

{ // Здесь установим ордера

if(Ask >= iHigh(Symbol(),Period(),1) )

open_active(Symbol(),OP_BUY,lot,iHigh(Symbol(),Period(),1)+Ask,3,iHigh(Symbol(),Period(),1) - SL*Point,iHigh(Symbol(),Period(),1) + TP*Point,NULL,Magic_Number,0,CLR_NONE);

 

if( Bid <=iLow(Symbol(),Period(),1) )

open_active(Symbol(),OP_SELL,lot,iLow(Symbol(),Period(),1),3,iLow(Symbol(),Period(),1) + Ask + SL*Point,iLow(Symbol(),Period(),1) - TP*Point,NULL,Magic_Number,0,CLR_NONE);

}

 

 

return(0);

}

 

 

//---- Возвращает количество ордеров указанного типа ордеров ----//

int Orders_Total_by_type(int type, int mn, string sym)

{

int num_orders=0;

for(int i= OrdersTotal()-1;i>=0;i--)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if( OrderMagicNumber() == mn && type == OrderType()

&& sym == OrderSymbol() )

num_orders++;

}

return(num_orders);

}

 

//+------------------------------------------------------------------+

//открытие ордеров по типу

int open_active(string symbol,int type,double lot=0.1,int sl=0,int tp=0,string co="", int mag=0)

{

int isOpened = 0;

int try = 0;

double TP,SL;

 

RefreshRates();

 

if(type==0)

{

TP=Ask+tp*Point;

SL=Bid-sl*Point;

if(tp==0)TP=0;

if(sl==0)SL=0;

isOpened = OrderSend(symbol,type,lot,MarketInfo(symbol,MODE_ASK),3,SL,TP,co,mag);

}

 

if(type==1)

{

TP=Bid-tp*Point;

SL=Ask+sl*Point;

if(tp==0)TP=0;

if(sl==0)SL=0;

isOpened = OrderSend(symbol,type,lot,MarketInfo(symbol,MODE_BID),3,SL,TP,co,mag);

}

 

Sleep(500);

 

while(isOpened<0)

{

RefreshRates();

try++;

 

if(type==0)

{

TP=Ask+tp*Point;

SL=Bid-sl*Point;

if(tp==0)TP=0;

if(sl==0)SL=0;

isOpened = OrderSend(symbol,type,lot,MarketInfo(symbol,MODE_ASK),3,SL,TP,co,mag);

}

 

if(type==1)

{

TP=Bid-tp*Point;

SL=Ask+sl*Point;

if(tp==0)TP=0;

if(sl==0)SL=0;

isOpened = OrderSend(symbol,type,lot,MarketInfo(symbol,MODE_BID),3,SL,TP,co,mag);

}

 

if(try > 5) break;

 

if(isOpened>=0)break;

 

Sleep(500);

}

 

if(isOpened<0) Alert("Ордер не открыт, ошибка :", GetLastError());

return (isOpened);

}

//---------------

 

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

Link to post
Share on other sites
kazakov.v
здрасте :) ....может кто посмотрит в чем моя ошибка???? компилятор пишет что не хватает левой скобки....дисбаланс видите-ли....но где...никак не могу понять :(

//------------------------------------

 

if(Orders_Total_by_type(OP_BUY, Magic_Number, Symbol() == 0 )||if(Orders_Total_by_type(OP_SELL, Magic_Number, Symbol() == 0 )

 

Явный косяк :crazy:

Дальше не смотрел


Никому верить нельзя.

Мне - можно.

 

Link to post
Share on other sites
baronel
if(Orders_Total_by_type(OP_BUY, Magic_Number, Symbol() == 0 )||if(Orders_Total_by_type(OP_SELL, Magic_Number, Symbol() == 0 )

 

Явный косяк :crazy:

Дальше не смотрел

так лучше?

 

int start()

{

if(Orders_Total_by_type(OP_BUY, Magic_Number, Symbol() == 0 )

{ // Здесь установим ордера

if(Ask >= iHigh(Symbol(),Period(),1) )

open_active(Symbol(),OP_BUY,lot,iHigh(Symbol(),Period(),1)+Ask,3,iHigh(Symbol(),Period(),1) - SL*Point,iHigh(Symbol(),Period(),1) + TP*Point,NULL,Magic_Number,0,CLR_NONE);

}

if(Orders_Total_by_type(OP_SELL, Magic_Number, Symbol() == 0 )

{

if( Bid <=iLow(Symbol(),Period(),1) )

open_active(Symbol(),OP_SELL,lot,iLow(Symbol(),Period(),1),3,iLow(Symbol(),Period(),1) + Ask + SL*Point,iLow(Symbol(),Period(),1) - TP*Point,NULL,Magic_Number,0,CLR_NONE);

}

 

 

return(0);

}

Edited by baronel
Link to post
Share on other sites
baronel

...меня больше интересует проблема со скобкой при компиляции

Edited by baronel
Link to post
Share on other sites
Roger
так лучше?

 

int start()

{

if(Orders_Total_by_type(OP_BUY, Magic_Number, Symbol() == 0 )

 

if(Orders_Total_by_type(OP_SELL, Magic_Number, Symbol() == 0 )

 

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

Link to post
Share on other sites
baronel
Ну, так ты посчитай количество скобок именно здесь.

 

если ставить так.

int start()

{

if(Orders_Total_by_type(OP_BUY, Magic_Number, Symbol() == 0 )

 

if(Orders_Total_by_type(OP_SELL, Magic_Number, Symbol() == 0 )

}

....проблема остается.....

Link to post
Share on other sites
ceppqq58
:ora: :-)
СпасибО,приму к сведению.пишу крупно, потому што мне так удобно.русский,с литературой я прогуливал, но матиматика была любимым предметом. И еще в пятом классе меня научили, что два минуса дают плюс.Кто хочет,выделиться я знаю,из курса высшей социологии,это не комне.А вот за то, што у вас есть подобный вариант,спасибо.Значит его ктото использует и никто, и нигде его не хаит.То что мне его ктонть собирет,это однозначно и я небыл , и не стану крысятничать, а раздам нуждающимся .Для этого у меня приготовлена веточка в соцсетях(где?в личку). И заодно по форумам других ДЦ(Я патриот) ,освободить несколько голов от распрекрасных индикаторов,к аналов,фраткалофф и тому подобных выкрутасов.Так поступил бы любой китаец(и патриот любой страны)Всем удачи. Edited by ceppqq58
Link to post
Share on other sites
olnikt
...меня больше интересует проблема со скобкой при компиляции

if(Orders_Total_by_type(OP_BUY, Magic_Number, Symbol() == 0 ) - забыли закрыть скобку в параметрах функции.

Надо if (Orders_Total_by_type(OP_BUY, Magic_Number, Symbol()) == 0 )


Бесплатно автоматизирую торговые системы с подтверждённым положительным результатом торговли от трёх месяцев. С уважением,olnikt

Link to post
Share on other sites
SimpleW

Здравствуйте. Я бы хотел поэкспериментировать с советник по 2-ум среднескользящим... Но из-за кривых рук не могу прописоть в него код, чтобы после закрытия сделки по тейкпрофиту или стоплоссу Открывался новый ордер с начала следующей свечи после закрытия позиции.

 

Вот сам советник

http://fayloobmennik.net/524571

 

Может кто-нибудь может помочь ? Заранее благодарен!

Edited by SimpleW
Link to post
Share on other sites
baronel
if(Orders_Total_by_type(OP_BUY, Magic_Number, Symbol() == 0 ) - забыли закрыть скобку в параметрах функции.

Надо if (Orders_Total_by_type(OP_BUY, Magic_Number, Symbol()) == 0 )

 

 

....спасибо исправил...но проблема осталась:ahelp:

Link to post
Share on other sites
Roger
....спасибо исправил...но проблема осталась:ahelp:

 

Совет, чтобы в дальнейшем не задавать подобные глупые вопросы, делаем так - закомментируй в блоке старт все строки кроме первой и дави "компил". Если все нормально, отпускаем следующую строку. Скобки отпускаем парно. Когда вылезает ошибка, анализируем строчку. Все!!!

Link to post
Share on other sites
RUBICON
здрасте :)

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

 

Ёбжiки мну ооочень нрацца!!! Они с..ка веселые.:-D



 

 

extern int TP = 13;                     //TakeProfit ордеров.
extern int SL = 17;                          //StopLoss ордеров.
extern double lot = 0.1;                     //объём позиций.
extern int Magic_Number = 1;                 //уникальный идентификатор эксперта.

int open_active;

int start()
 {
 if(Orders_Total_by_type(OP_BUY, Magic_Number, Symbol()) == 0 ||Orders_Total_by_type(OP_SELL, Magic_Number, Symbol()) == 0 ) 
   {// Здесь установим ордера
   if(Ask >= iHigh(Symbol(),Period(),1) )

   open_active(Symbol(),OP_BUY,lot,iHigh(Symbol(),Period(),1)-SL*Point,iHigh(Symbol(),Period(),1)+TP*Point,NULL,Magic_Number);

  if( Bid <=iLow(Symbol(),Period(),1) )

  open_active(Symbol(),OP_SELL,lot,iLow(Symbol(),Period(),1)+Ask+SL*Point,iLow(Symbol(),Period(),1)-TP*Point, NULL,Magic_Number);
  } 
return(0);
}
//---- Возвращает количество ордеров указанного типа ордеров ----//
int Orders_Total_by_type(int type, int mn, string sym)
 {
 int num_orders=0;
 for(int i= OrdersTotal()-1;i>=0;i--)
 {

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderMagicNumber() == mn && type == OrderType()&& sym == OrderSymbol() ) num_orders++;
 }
return(num_orders);
}
//+------------------------------------------------------------------+
//открытие ордеров по типу
int open_active(string symbol,int type,double lot=0.1,int sl=0,int tp=0,string co="", int mag=0)
 {
 int isOpened = 0;
 int try = 0;
 double TP,SL;

 RefreshRates();

 if(type==0)
   {
   TP=Ask+tp*Point;
   SL=Bid-sl*Point;
   if(tp==0)TP=0;
   if(sl==0)SL=0;
   isOpened = OrderSend(symbol,type,lot,MarketInfo(symbol,MODE_ASK),3,SL,TP,co,mag);
   }

 if(type==1)
   {
   TP=Bid-tp*Point;
   SL=Ask+sl*Point;
   if(tp==0)TP=0;
   if(sl==0)SL=0;
   isOpened = OrderSend(symbol,type,lot,MarketInfo(symbol,MODE_BID),3,SL,TP,co,mag);
   }

 Sleep(500); 

 while(isOpened<0) 
   {
   RefreshRates();
   try++;

   if(type==0)
     {
     TP=Ask+tp*Point;
     SL=Bid-sl*Point;
     if(tp==0)TP=0;
     if(sl==0)SL=0;
     isOpened = OrderSend(symbol,type,lot,MarketInfo(symbol,MODE_ASK),3,SL,TP,co,mag); 
     }

   if(type==1)
     {
     TP=Bid-tp*Point;
     SL=Ask+sl*Point;
     if(tp==0)TP=0;
     if(sl==0)SL=0;
     isOpened = OrderSend(symbol,type,lot,MarketInfo(symbol,MODE_BID),3,SL,TP,co,mag);
     }

 if(try > 5) break;

 if(isOpened>=0)break;

 Sleep(500);
 }
if(isOpened<0) Alert("Ордер не открыт, ошибка :", GetLastError());
return (isOpened);
}

P.S. Основная проблема в передаче параметров функциям.

Edited by RUBICON

Умное лицо - это еще не признак ума господа.

........................Все глупости на земле делаются именно с этим выражением лица.

.............................................................................................................Улыбайтесь, господа, улыбайтесь!!!

...............................................................................................................................................................(Тот самый Мюнхгаузен.)

Link to post
Share on other sites
baronel

...всем спасибо за содействие...нашел причину.....не судите ...да несудимы будете...а помогите просящему...укажите правильную дорогу если знаете....не всем быть умным ....тем более что программирование для меня это новая тема...а то как-то форум вроде про язык программирования....после некоторых ответов...появляется чувство что лучше ....вообще не спрашивать :( ......а топтаться на одном месте пока подошвы не протру....учебник по MQL дает скудные знания...так что многое оттуда непонятно....там же не предусмотрены все случаи....короче ещё раз спасибо тем кто отозвался !!!!!!!!!!!!!!!!!!

Link to post
Share on other sites
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...