Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 756
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я привык к собственной системе архивации.
Добрый день.
Написал программку-упражнение. Почему-то не работает.
Тестировал в тестере стратегий в период от 29 сентября до 15 октября.
Программа должна работать так: совершается покупка. Когда цена упадет на 0.010 должна произойти продажа с убытком.
Покупка происходит. Продажа не происходит. Включаю визуализацию, вижу, что появляется цена ниже не то, что на 0.010, но и значительно больше. Странно.
// -------- переменные --- Начало -----
extern double L1=0.01; // размер лота для покупки
extern double L1n=0.01; // размер лота для покупки (нормализованный лот)
extern double AktualAsk=0.0; // актуальная цена покупки
extern double AktualBid=0.0; // актуальная цена продажи
extern int ticketlackmus=1; // индикатор успешности откарытия ордера
extern int ticket1=0; // тикет
extern bool PozOtk1=true;
// -------- переменные --- Конец -----
int init()
{
return(0);
}
int start()
{
if (PozOtk1==true)
{
// Открытие позиции
ticketlackmus=1;
while (ticketlackmus>0)
{
Alert (" Открытие первой позиции ");
RefreshRates(); // Обновление данных
AktualAsk=NormalizeDouble(Ask,Digits); //для цены
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);
}
Ozero.
Пожалуйста, при вставке кода, пользуйтесь волшебной кнопкой 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);