[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 845

 
Top2n:
Может у кого есть написанный код лока, скиньте пожалуйста в личку. буду благодарен вам!
Я же вам уже отвечал в личку, что это то же самое открытие позы, но в противоположную сторону. А уж объём позы смотрите сами, исходя из вашей логики.
 
я сделал с отложенным, но там происходит косяк, чем чаще в этом месте открывает, тем дальше от ордера он становится. надо чтоб без обложки а прям на месте, но я не могу написать услови при каких обстоятельствах ему открыться!
 
Top2n:
я сделал с отложенным, но там происходит косяк, чем чаще в этом месте открывает, тем дальше от ордера он становится. надо чтоб без обложки а прям на месте, но я не могу написать услови при каких обстоятельствах ему открыться!

Если вы сами не можете определиться с условиями открытия, то как же вам помочь???

Нужно как-то постараться формализовать то, чего же вы желаете сделать.

 
надо чтоб открывался противоположный ордер в определенной точке, и если он закрылся, снова в этой точке открылся, если конечно цена спуститься до нее. вроде дак
 
Top2n:
надо чтоб открывался противоположный ордер в определенной точке, и если он закрылся, снова в этой точке открылся, если конечно цена спуститься до нее. вроде дак

Честно... Это больше похоже на некое ТЗ от горе-заказчика, каких огромное множество, а не на логику программиста :)

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);
}
//+------------------------------------------------------------------+



Может на этом форуме это уже встречалось, но перечитывать уже сил нет

Если кто нибудь мне поможет, БОЛЬШОЕ ему СПАСИБО!

 
Top2n:

на сам деле все проще, мне так кажется.

1. Открыт bay ордер, если цена уходит в минус на 10п то открываем sell,

2.Если sell закрылась по SL цена начинает работать с bay, если цена спуститься опять в минус на 10п опять откр. sell

а если sll закроется по TP то мой советник дальше сделает все как надо.

У меня вопрос как поставить условие:

1. Открыт bay ордер, если цена уходит в минус на 10п то открываем sell

2.Если sell закрылась по SL цена начинает работать с bay, если цена спуститься опять в минус на 10п опять откр. sell

На каждом тике проверяйте профит открытых позиций и, если он меньше, либо равен 10 пп, то и делайте что нужно далее
 
serjik77:

Извините пожалуйста, если отвлекаю, наверное глупым вопросом.

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

Несколько раз прочел учебник. Начал советник с простейшими функциями- отложенными ордерами.

Никак не могу понять что нужно сделать что бы ордера открылись один раз, а не с каждым тиком

//+------------------------------------------------------------------+
//| мой.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);
}
//+------------------------------------------------------------------+



Может на этом форуме это уже встречалось, но перечитывать уже сил нет

Если кто нибудь мне поможет, БОЛЬШОЕ ему СПАСИБО!

Нужно перед выставлением ордера сначала проверить а не присутствует ли он уже... Если его ещё нету - то ставить, а если есть - то не надо...
Причина обращения: