Если позиция открывается на конкретном символе (в данном случае - "GBPUSD"), то желательно все данные брать тоже по этому символу через маркетинфо, то есть не простоAktualAsk=NormalizeDouble(Ask,Digits); a AktualAsk=MarketInfo("GBPUSD",MODE_ASK);
И так следует брать любые рыночные данные, во избежание.
// -------- переменные --- Н -----externdouble L1=0.01; // размер лота для покупки externdouble L1n=0.01; // размер лота для покупки externdouble AktualAsk=0.0;
externdouble AktualBid=0.0;
externint ticketlackmus=1; // "лакмусовая бумажка" успешности откарытия ордераexternint ticket1=0; // тикет externbool PozOtk1=true;
// -------- переменные --- К ----- int init()
{
return(0);
}
int start()
{
if (PozOtk1==true)
{
// Открытие позиции
ticketlackmus=1;
while (ticketlackmus>0)
{
Alert (" Открытие первой позиции ");
RefreshRates(); // Обновление данных //AktualAsk=NormalizeDouble(Ask,Digits); //для цены
AktualAsk=MarketInfo( "GBPUSD",MODE_ASK);
L1n=NormalizeDouble(L1,2); //для лота.
ticket1=OrderSend ("GBPUSD", OP_BUY, L1n, AktualAsk, 5, 0, 0, 0, 0, CLR_NONE);
if (ticket1>0) ticketlackmus=-1;
{
Alert (" ОРДЕР ОТКРЫТ ", ticket1, " ", ticketlackmus);
}
}
PozOtk1=false;
Alert (" PozOtk1 ", PozOtk1);
}
RefreshRates(); // Обновление данных
AktualBid=NormalizeDouble(Bid,Digits); //для ценыif (AktualBid>=AktualAsk+0.010 && PozOtk1==false)
{
RefreshRates(); // Обновление данных OrderSelect(ticket1, SELECT_BY_TICKET);
L1n=NormalizeDouble(L1,2); //для лота
OrderClose (ticket1, L1n, AktualBid, 5);
PozOtk1=true;
}
return(0);
}
int deinit()
{
return(0);
}
evillive:
Если позиция открывается на конкретном символе (в данном случае - "GBPUSD"), то желательно все данные брать тоже по этому символу через маркетинфо, то есть не простоAktualAsk=NormalizeDouble(Ask,Digits); a AktualAsk=MarketInfo("GBPUSD",MODE_ASK);
И так следует брать любые рыночные данные, во избежание.
Спасибо, Evillive!
Произвел изменения. Но, покупка и так происходила. После изменений продажа не происходит. Тест М15 от 30 сентября 2014 по середину октября.
Проанализировал Ваш код. Красивое решение моей задачи. Но все же, мой код у Вас заработал? Или слова "Вполне работает" относится к Вашей версии программы?
Мне важно разобраться с MQL языком.
Вопрос по Вашей версии. Почему Вы не объявляете в начале программы переменные _Bid и _Ask? Разве так можно в mql4?
Пожалуйста, при вставке кода, пользуйтесь волшебной кнопкой SRC:
Правильно вставляем код на форуме
Если позиция открывается на конкретном символе (в данном случае - "GBPUSD"), то желательно все данные брать тоже по этому символу через маркетинфо, то есть не просто AktualAsk=NormalizeDouble(Ask,Digits); a AktualAsk=MarketInfo( "GBPUSD",MODE_ASK);
И так следует брать любые рыночные данные, во избежание.
Если позиция открывается на конкретном символе (в данном случае - "GBPUSD"), то желательно все данные брать тоже по этому символу через маркетинфо, то есть не просто AktualAsk=NormalizeDouble(Ask,Digits); a AktualAsk=MarketInfo( "GBPUSD",MODE_ASK);
И так следует брать любые рыночные данные, во избежание.
Спасибо, Evillive!
Произвел изменения. Но, покупка и так происходила. После изменений продажа не происходит. Тест М15 от 30 сентября 2014 по середину октября.
Спасибо, Evillive!
Произвел изменения. Но, покупка и так происходила. После изменений продажа не происходит. Тест М15 от 30 сентября 2014 по середину октября.
OrderClose (ticket1, L1n, AktualBid, 5);Я и имел в виду, что ордер не закрывается :( Сорри, что не так выразился, новичок еще.
Вполне работает
Вполне работает
Здравствуйте, Vinin.
Проанализировал Ваш код. Красивое решение моей задачи. Но все же, мой код у Вас заработал? Или слова "Вполне работает" относится к Вашей версии программы?
Мне важно разобраться с MQL языком.
Вопрос по Вашей версии. Почему Вы не объявляете в начале программы переменные _Bid и _Ask? Разве так можно в mql4?
Ozero.