[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 924
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Поправь просто, чтобы человек не заблудился... :)
А вы бы не могли мне поправить, просто?
Я привёл пример:
Если 5 больше 2, то это значит, что 5 больше 2.
А сравнение разницы этих величин - это если 5-2 больше ноля, то значит 5 больше 2
Так надеюсь ясно? Суть-то осталась - всё та же математика первого класса, только производное от неё же...
datetime time;
//--------------------------------------------------------------- 2 --
int start()
{
int Total;
bool
Ans =false, // Ответ сервера после закрытия
Cls_B=false, // Критерий для закрытия Buy
Cls_S=false, // Критерий для закрытия Sell
Opn_B=false, // Критерий для открытия Buy
Opn_S=false; // Критерий для открытия Sell
//--------------------------------------------------------------- 3 --
// Учёт ордеров
for(int i=OrdersTotal()-1;i>=0;i--)
if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()>1)Total++;
if(Total!=0 || time==Time[1])return;
static int KolBars;
if (Close[0]-Open[0] > Point && Close[1]-Open[1] > Point && Bars == KolBars)
{
KolBars=Bars ; // запоминаем кол-во бар при которых совершались действия
}
// Торговые критерии
// Критерий откр. Buy
Opn_B=true;
//--------------------------------------------------------------- 7 --
if (Opn_B)
{OrderSend(Symbol(),OP_BUY,Lot,Ask,0,0,0);time=Time[1];}
}
Помогите пожалуйста, кто нибудь, прошу уже 4й раз. 3 дня уже на поиски ответа потратил, в книге не написано как это сделать, советников с подобным условием не нашел. Элементарный советник, открывает позицию на покупку при появлении новой свечки (при условии, что предыдущие 2 свечки зеленые), а закрывает позицию при закрытии свечки, на которой была открыта позиция, или на закрытии следующей свечки.
То, что вы видите выше, открывает позиции при каждом появлении новой свечки, не реагируя на критерии открытия, а как закрыть позицию до меня не доходит, в учебнике и на форумах не нашел.
Разбирайтесь... :)
И не забудьте о существовании СтопЛевел - int StLev=MarketInfo(Symbol(), MODE_STOPLEVEL);
Проверяйте минимальную дистанцию установки стопов и тейков, чтобы они были не меньше данного значения
вообщем составил вроде правильно,но-- "StLev=MarketInfo(Symbol(),MODE_STOPLEVEL);" куда его ставить до меня не дошло,
вот...
дело в том что я на работе постоянно(а мне тут программу mql4 не поставить, и приходиться мне в уме это все проделывать
extern double StopLoss=100.0;
extern double TakeProfit=100.0;
extern double Lots=0.01;
extern int total;
extern int SetOrderDistance=50;
int start() {
int pt,dg,StLev;
double Price_1,Price_2,min,max,pa,pb;
RefreshRates();
pt=MarketInfo(Symbol(),MODE_POINT);
dg=MarketInfo(Symbol(),MODE_DIGITS);
pa=MarketInfo(Symbol(),MODE_ASK);
pb=MarketInfo(Symbol(),MODE_BID);
Price_1=pb;
Price_2=pa;
min=iLow(NULL,0,2);
max=iHigh(NULL,0,2);
total=OrdersTotal();
double slB=NormalizeDouble(pa-StopLoss*pt,dg);
double tpB=NormalizeDouble(pa+TakeProfit*pt,dg);
double slS=NormalizeDouble(pb+StopLoss*pt,dg);
double tpS=NormalizeDouble(pb-TakeProfit*pt,dg);
if(total<1) {
if(Price_1>max)
OrderSend(Symbol(),OP_BUY,Lots,pa,5,slB,tpB,"My order#,16384,0,Green);
if(Price_2<min)
OrderSend(Symbol(),OP_SELL,Lots,pb,5,slS,tpS,"My order#,16384,0,Green);
}
}return(0);
на скорую руку набросал.Могут быть косяки
на скорую руку набросал.Могут быть косяки
Спасибо большое, очень помог.
Как учился программировать? С чего начинал?
Спасибо большое, очень помог.
Как учился программировать? С чего начинал?
А с++ сильно от mql отличается?
за исключением некоторых особенностей(торговую ориентацию) Mql это просто сильно урезанная копия с++