Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 306
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да неужели?
А где идея?
В таком случае не ИДЕЮ, а ПОДХОД.
А зачем ждать? Проверять код нужно в тестере! В условия модофикаций нужно добавить зту переменную Spread c зазором!
if (zeroprice>Ask+(Spread+зазор)*Point)
//-------------------------------------------//Е сли умножены предварительно, убрать *Point!
if (zeroprice<Bid-(Spread+зазор)*Point)
попробовал, и так OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),zeroprice+Spread,0,Blue); //установка тейка в б/у для бая, если позиция в минусе тоже, но все равно TP=SL, правда с зазором не понял, он тоже нужен как переменная?
ТП у Бая наверху, а СЛ внизу. Причём тут, что они равны? А зазор нужен для запаса, чтобы сервер принял по заявленной цене и не отказал. Да, пусть будет одна переменная для этих случаев, когда цена может быть непозволительно близка к месту модификаций.
я уже говорил что это изъян скрипта (TP=SL), так как стоп могут а забрать а TP нет, если цена не дойдет. Получится и SL в -, да и еще и не дай Бог цена развернется и по вторым тоже в минус.
короче пока не знаю что менять, утром на трезвую голову попробую.
короче пока не знаю что менять, утром на трезвую голову попробую.
Подскажите пожалуйста.
Все 43 позиции на продажу объемом 0.1 лот(1 доллар) у каждой из которой был стоп 231 п. закрылись по профиту
В рынке одновременно присутствовал только 1 рыночный ордер.
Это значит,что цена не могла уйти в минус более чем на 230 п. по любой из позиций.
Почему же тестер показывает просадку по эквити 244 п.
Ведь если бы цена уходила по какой -то позиции в минус на 244 п. то сработал бы стоп.
http://clip2net.com/s/6im1rj
Подскажите пожалуйста.
Все 43 позиции на продажу объемом 0.1 лот(1 доллар) у каждой из которой был стоп 231 п. закрылись по профиту
В рынке одновременно присутствовал только 1 рыночный ордер.
Это значит,что цена не могла уйти в минус более чем на 230 п. по любой из позиций.
Почему же тестер показывает просадку по эквити 244 п.
Ведь если бы цена уходила по какой -то позиции в минус на 244 п. то сработал бы стоп.
http://clip2net.com/s/6im1rj
Может тестирование было не по евре и стоимость пункта не 10$. Может убыточный ордер пришлось долго держать и был отрицательный своп.
Может тестирование было не по евре и стоимость пункта не 10$. Может убыточный ордер пришлось долго держать и был отрицательный своп.
Евро-доллар. Значит - второй вариант. .
Спасибо.
Народ помогите плиз с трейлинг стопом!!!!!!!!!! Вроде всё компилирует, но на тестере трейлинг не включает!!! Срочно плиз))
//+------------------------------------------------------------------+
//| Nevalyashka_BOT.mq4 |
//| Copyright 2013, MetaQuotes Software Corp. |
//| https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link "https://www.metaquotes.net/"
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red
#property indicator_width1 2
#property indicator_width2 2
extern int Bars_To_Count = 400;
extern int Arrow_dis_from_can = 2;//points
extern bool play_sound = true;
extern string sound_name = "Red Alert";
extern double lots =0.1;
extern int SlipPage =30;
extern int StopLoss =250;
extern int TrailingStop =220;
extern int TrailingStep =1;
extern string comment ="Побеждает НеВаЛяШкА";
extern int Magic =777;
double buf_up[];
double buf_down[];
double up;
double down;
double h;
int bars_cheked;
int ticket;
int Sl;
int i;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
void init()
{
SetIndexBuffer(0,buf_up);
SetIndexArrow(0,233);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(1,234);
SetIndexBuffer(1,buf_down);
SetIndexStyle(1,DRAW_ARROW);
if (Digits ==3 || Digits ==5)
{
StopLoss*=10;
SlipPage*=10;
TrailingStop *=10;
TrailingStep *=10;
}
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
void deinit()
{
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
void start()
{
for(int h=1;h<Bars_To_Count-bars_cheked;h++)
{
/////////up
if(Open[h]<Close[h])
{
for(int u=h+1;u<Bars_To_Count+1;u++)
{
if(Open[u]!=Close[u])
break;
}
if(Open[u]>Close[u])
{
Sl=NormalizeDouble(Ask-StopLoss*Point,Digits);
ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,SlipPage,0,0,comment,Magic,0,indicator_color1);
if (ticket>0)
{
if (OrderSelect(ticket,SELECT_BY_TICKET, MODE_TRADES) ==true)
{
OrderModify(ticket,OrderOpenPrice(),Sl,0,0);
}
}
buf_up[h]=Low[h]-Arrow_dis_from_can*Point;
}
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
////////down
if(Open[h]>Close[h])
{
for(int e=h+1; e < Bars_To_Count+1; e++)
{
if(Open[e]!=Close[e])
{
break;
if(Open[e]<Close[e])
{
Sl=NormalizeDouble(Bid+StopLoss*Point,Digits);
ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,SlipPage,0,0,comment,Magic,0,indicator_color2);
if (ticket>0)
{
if (OrderSelect(ticket,SELECT_BY_TICKET, MODE_TRADES) ==true)
{
OrderModify(ticket,OrderOpenPrice(),Sl,0,0);
}
buf_down[h]=High[h]+Arrow_dis_from_can*Point;
}
}
}
}
}
Trailing();
}
void Trailing()
{
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==Symbol()||OrderMagicNumber()==Magic)
if(OrderType()==OP_BUY)
{
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>TrailingStop)
{
if(OrderStopLoss()<Bid-TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop,OrderTakeProfit(),0,Green);
}
}
}
}
if(OrderType()==OP_SELL)
{
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>TrailingStop)
{
if((OrderStopLoss()>(Ask+TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop,OrderTakeProfit(),0,Red);
}
}
}
}
}
}
//+------------------------------------------------------------------