[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 845
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Может у кого есть написанный код лока, скиньте пожалуйста в личку. буду благодарен вам!
я сделал с отложенным, но там происходит косяк, чем чаще в этом месте открывает, тем дальше от ордера он становится. надо чтоб без обложки а прям на месте, но я не могу написать услови при каких обстоятельствах ему открыться!
Если вы сами не можете определиться с условиями открытия, то как же вам помочь???
Нужно как-то постараться формализовать то, чего же вы желаете сделать.
надо чтоб открывался противоположный ордер в определенной точке, и если он закрылся, снова в этой точке открылся, если конечно цена спуститься до нее. вроде дак
Честно... Это больше похоже на некое ТЗ от горе-заказчика, каких огромное множество, а не на логику программиста :)
1. Вам необходим отложенный ордер или открыть противоположную позицию при достижении определённого количества пунктов убытка уже открытой?
2. Если это противоположный ордер и его коснулась цена, то он преобразуется в рыночный, отсюда
2.1. Если закрылась рыночная поза (с убытком? с прибылью?), то вновь выставить такой же ордер на той же цене? (его тип будет зависеть от текущей цены)
2.2. Если сработал отложенный ордер, то опять его выставить?
2.3
2.4.
.... и ещё миллион вопросов можно задать. Давайте мы не будем клещами вытягивать информацию чего ж вам там нужно, а?
Напишите логику того, что хотите сделать. Это прежде всего. Можете на листочке с карандашиком...
А уж потом можно будет решать как это всё в коде воплотить.
Меня интересует работа с объемами. есть файлы с форматом .csv . посмотрел, в папке трейдинг-сервер находятся файлы с форматом .hst
какой формат записи в файл csv должен быть с объемами и как преобразовать его в . hst ?
на сам деле все проще, мне так кажется.
1. Открыт bay ордер, если цена уходит в минус на 10п то открываем sell,
2.Если sell закрылась по SL цена начинает работать с bay, если цена спуститься опять в минус на 10п опять откр. sell
а если sll закроется по TP то мой советник дальше сделает все как надо.
У меня вопрос как поставить условие:
1. Открыт bay ордер, если цена уходит в минус на 10п то открываем sell
2.Если sell закрылась по SL цена начинает работать с bay, если цена спуститься опять в минус на 10п опять откр. sell
Извините пожалуйста, если отвлекаю, наверное глупым вопросом.
Только начал учиться этому, а спросить совета не у кого.
Несколько раз прочел учебник. Начал советник с простейшими функциями- отложенными ордерами.
Никак не могу понять что нужно сделать что бы ордера открылись один раз, а не с каждым тиком
//+------------------------------------------------------------------+//| мой.mq4 |
//| serjik |
//| |
//+------------------------------------------------------------------+
#property copyright "serjik"
//---- внешние переменные
extern double Lots=0.1; // размер лота
extern int StopLoss=0; // стоп лос
extern int TakeProfit=10; // прибыль
extern int DistanceSet=10; // расстояние от рынка ордеров
extern int Slippage=3; // проскальзывание цены
//----глобальные переменные
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
double ldStop=0, ldTake=0;
double pAsk=Ask+DistanceSet*Point;
double pBid=Bid-DistanceSet*Point;
if (StopLoss!=0) ldStop=pAsk-StopLoss*Point;
if (TakeProfit!=0) ldTake=pAsk+TakeProfit*Point;
SetOrder(OP_BUYSTOP, pAsk, ldStop, ldTake); //
if (StopLoss!=0) ldStop=pBid+StopLoss*Point; //
if (TakeProfit!=0) ldTake=pBid-TakeProfit*Point;
SetOrder(OP_SELLSTOP, pBid, ldStop, ldTake); //
}
//+------------------------------------------------------------------+
//| Установка ордеров |
//| Параметры: |
//| op - операция |
//| pp - цена |
//| ldStop - уровень стоп |
//| ldTake - уровень тейк |
//+------------------------------------------------------------------+
void SetOrder(int op, double pp, double ldStop, double ldTake)
{
OrderSend(Symbol(),op,Lots,pp,Slippage,ldStop,ldTake);
return(0);
}
//+------------------------------------------------------------------+
Может на этом форуме это уже встречалось, но перечитывать уже сил нет
Если кто нибудь мне поможет, БОЛЬШОЕ ему СПАСИБО!
на сам деле все проще, мне так кажется.
1. Открыт bay ордер, если цена уходит в минус на 10п то открываем sell,
2.Если sell закрылась по SL цена начинает работать с bay, если цена спуститься опять в минус на 10п опять откр. sell
а если sll закроется по TP то мой советник дальше сделает все как надо.
У меня вопрос как поставить условие:
1. Открыт bay ордер, если цена уходит в минус на 10п то открываем sell
2.Если sell закрылась по SL цена начинает работать с bay, если цена спуститься опять в минус на 10п опять откр. sell
Извините пожалуйста, если отвлекаю, наверное глупым вопросом.
Только начал учиться этому, а спросить совета не у кого.
Несколько раз прочел учебник. Начал советник с простейшими функциями- отложенными ордерами.
Никак не могу понять что нужно сделать что бы ордера открылись один раз, а не с каждым тиком
//+------------------------------------------------------------------+//| мой.mq4 |
//| serjik |
//| |
//+------------------------------------------------------------------+
#property copyright "serjik"
//---- внешние переменные
extern double Lots=0.1; // размер лота
extern int StopLoss=0; // стоп лос
extern int TakeProfit=10; // прибыль
extern int DistanceSet=10; // расстояние от рынка ордеров
extern int Slippage=3; // проскальзывание цены
//----глобальные переменные
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
double ldStop=0, ldTake=0;
double pAsk=Ask+DistanceSet*Point;
double pBid=Bid-DistanceSet*Point;
if (StopLoss!=0) ldStop=pAsk-StopLoss*Point;
if (TakeProfit!=0) ldTake=pAsk+TakeProfit*Point;
SetOrder(OP_BUYSTOP, pAsk, ldStop, ldTake); //
if (StopLoss!=0) ldStop=pBid+StopLoss*Point; //
if (TakeProfit!=0) ldTake=pBid-TakeProfit*Point;
SetOrder(OP_SELLSTOP, pBid, ldStop, ldTake); //
}
//+------------------------------------------------------------------+
//| Установка ордеров |
//| Параметры: |
//| op - операция |
//| pp - цена |
//| ldStop - уровень стоп |
//| ldTake - уровень тейк |
//+------------------------------------------------------------------+
void SetOrder(int op, double pp, double ldStop, double ldTake)
{
OrderSend(Symbol(),op,Lots,pp,Slippage,ldStop,ldTake);
return(0);
}
//+------------------------------------------------------------------+
Может на этом форуме это уже встречалось, но перечитывать уже сил нет
Если кто нибудь мне поможет, БОЛЬШОЕ ему СПАСИБО!