[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 329

 
Zhunko:

К сожалению, все варианты без DDE обречены на потерю тиков из пачек. Их можно восстановить путём апроксимации, но это не очень хорошо.

Есть вариант получать через DDE прямо Exel.


Вадим, благодарю. Буду смотреть.
 
granit77:
1. https://www.mql5.com/ru/articles/1368
2. https://www.mql5.com/ru/forum/100028/page58#94290

И в первом приближении достаточно.

Виктор, от души благодарю. Обязательно поинтересуюсь этой статьей и рекомендациями Rosh'а.
 

Всем здравствуйте! Попытка №3 :))

Уважаемые профессионалы!!!

Гляньте, пож., в чем проблема не пойму. При попытке выставления одного отлож. ордера, выставляется два.

while (Ticket2<0)

{

RefreshRates();

Ticket2=OrderSend(Symbol(),2,Lots_New*2,price,2,0,TP,"",MN); //1 ордер отложенный Buy

Alert ("Ошибка В ЦИКЛЕ ",GetLastError());Alert ("TIK2= ",Ticket2);

Sleep(500);

}

Заранее благодарю всех, кто откликнется.

 
demlin:

Всем здравствуйте! Попытка №3 :))

Уважаемые профессионалы!!!

Гляньте, пож., в чем проблема не пойму. При попытке выставления одного отлож. ордера, выставляется два.

while (Ticket2<0)

{

RefreshRates();

Ticket2=OrderSend(Symbol(),2,Lots_New*2,price,2,0,TP,"",MN); //1 ордер отложенный Buy

Alert ("Ошибка В ЦИКЛЕ ",GetLastError());Alert ("TIK2= ",Ticket2);

Sleep(500);

}

Заранее благодарю всех, кто откликнется.


Добавьте флаги (наличия отложенного ордера) в условие к номеру тикета, т.е. сначала флаг - false, далее в условии - пока тикет < 0 и флаг==false - устанавливаем отложенник и флаг ставим в true. После сработки отложенного ордера в рыночный либо удаления отложенника - сбрасываем флаг установки отложенника в false. Как то так попробуйте...
 

Есть такой вопрос: как вывести на экран цену по краям Trendline. Или чтобы правая (левая) ценовая метка примагничивалась к Trendline или к Low (High) бара, как это делает сама Trendline. Хотелось бы использовать стандартные графические инструменты MT4. Но если это не возможно, может нужен индикатор который бы прикреплял правые(левые) ценовые метки ко всем Trendline в окне (использую всего 4 Trendline и на всех по краям нужны цены)? Trendline без луча и краями цепляется за High или Low баров - естественно вручную. Цепочка из четырех Trendline похожа на индикатор ZigZag. В написании индикаторов опыта нет. Собственно по этому и пишу. Помогите, кто может.

 
demlin:

Всем здравствуйте! Попытка №3 :))

Уважаемые профессионалы!!!

Гляньте, пож., в чем проблема не пойму. При попытке выставления одного отлож. ордера, выставляется два.

while (Ticket2<0)

{

RefreshRates();

Ticket2=OrderSend(Symbol(),2,Lots_New*2,price,2,0,TP,"",MN); //1 ордер отложенный Buy

Alert ("Ошибка В ЦИКЛЕ ",GetLastError());Alert ("TIK2= ",Ticket2);

Sleep(500);

}

Заранее благодарю всех, кто откликнется.

Логика простейшая:

Если нет отложенного ордера с нужным типом, то выставить. ВСЁ...

 

У меня вопрос есть некий индикатор который подает сигнал при достижении определенного условия,

Вопрос как сделать чтоб место сигнала он просто открывал ордер,

вот код отвечающий за сигнал и сообщение

if (SoundON==true && i==1 && CrossUp[i] > CrossDown[i] && alertTag!=Time[0]){
         Alert("Открываем Селл ",Symbol()," ",Period());
        alertTag = Time[0];

пытался просто место alert поставить открытие не получается,

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

 
FoxUA:

У меня вопрос есть некий индикатор который подает сигнал при достижении определенного условия,

Вопрос как сделать чтоб место сигнала он просто открывал ордер,

вот код отвечающий за сигнал и сообщение

if (SoundON==true && i==1 && CrossUp[i] > CrossDown[i] && alertTag!=Time[0]){
         Alert("Открываем Селл ",Symbol()," ",Period());
        alertTag = Time[0];

пытался просто место alert поставить открытие не получается,

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

Индикатор не может открывать ордера. Этими вещами советник занимается. Если сей код принадлежит индикатору, то нужно делать вывод данных в его буфер, созданный специально для этих данных. Когда нет сигнала, в буфер пишется ноль или пустое значение, а при поступлении сигнала (как в вашем примере), вместо Alert(); записать значение в буфер.
Например:
+1 для Buy и
-1 для Sell.
Далее, уже в советнике по iCustom(); считывать данные с этого буфера.

Либо, прямо в советник прописать все эти условия.

 

Доброе утро!

Подскажите пожалуйста, открываю каждый день ордер

Magic_b++; OrderSend (Symbol(), OP_BUY, Loot,Ask, 50, SL, TP,NULL,Magic_b,0,L) (или Magic_s++; OrderSend (Symbol(), OP_BUY, Loot,Bid, 50, SL, TP,NULL,Magic_s,0,L; в зависимости от условий);

И хотелось закрывать открытый ордер(указанный выше) каждый день в опр.время,для этого использую след.схему(все кроме пятницы)

if ((DayOfWeek () == 1) || (DayOfWeek () == 2) || (DayOfWeek () == 3) || (DayOfWeek () == 4 ))

{if (((timecur > "23:59:00") && (timecur < "23:59:04")) && (iOpen(Symbol (), PERIOD_H4, 0)

!= iOpen(Symbol (), PERIOD_D1, 0)))

{if (iOpen(Symbol (), PERIOD_H4, 0) > iOpen(Symbol (), PERIOD_D1, 0))

{ Alert ("цена выше");

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

{ OrderSelect(i, SELECT_BY_POS

if(OrderMagicNumber()==Magic_b)

{Alert ("orderticket",OrderTicket());

OrderClose(OrderTicket(),Loot,Bid,80,R);

Alert (GetLastError);

Control = 0;

Magic_b++;

} } }

if (((timecur > "22:59:00") && (timecur < "22:59:04")) && (iOpen(Symbol (), PERIOD_H4, 0)

!= iOpen(Symbol (), PERIOD_D1, 0)))

{if (iOpen(Symbol (), PERIOD_H4, 0) < iOpen(Symbol (), PERIOD_D1, 0))

{ Alert ("цена выше");

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

{ OrderSelect(i, SELECT_BY_POS

if(OrderMagicNumber()==Magic_s)

{Alert ("orderticket",OrderTicket());

OrderClose(OrderTicket(),Loot,Ask,80,R);

Alert (GetLastError);

Control = 0;

Magic_s++;

} } } } }

Но при тестере почему-то не закрывается каждый день (например при тестировании с 23.08-23.10 2010 года) закрываются только 27.09.А 24.08 несмотря на то,что не реализован ниTP,ни SL- сделка не закрылась.Уже голову ломаю третий день,не могу никак додуматься что не так.Прошу вашей помощи

P.S.Условие входа всегда совпадает с условием закрытия(кроме времени конечно,можно допустить что тут время октрытия 22:01:00)

 
Может потому, что диапазон слишком маленький, всего 4 секунды? В это время мало тиков в баре и тестер может не попасть в заданный интервал.
Причина обращения: