Советник на основе п.и trend. - Торговые стратегии | MMGP
Присоединяйтесь к нашему инвестиционному форуму, на котором уже 434,701 пользователей. Чтобы получить доступ ко многим закрытым разделам и начать общение -  .
Вход через:  
Торговые стратегии, сигналы и системы. Методы анализа.
Важная информация
Есть опыт работы с криптовалютами? Заведи Крипто-Блог и заработай на нём!
Торгуешь криптовалютой? Оставь свой отзыв о бирже!
Разбираешься в криптовалюте? Прими участие в акции Крипторайтер 2.0 (2-10 поинтов за 1000 символов)
Изменения в акции "Оплата за сообщения".
Как на одной публикации заработать $100
Ответить
 
Первый пост Опции темы
Сообщения прочитаны и/или просмотрены Сегодня, 21:37
Старый 04.12.2009, 20:09
#1
Интересующийся
 
Пол: Мужской
Инвестирую в: Форекс
Регистрация: 28.09.2009
Сообщений: 18
Поблагодарили: 1 раз
УГ: 0
КП: 0.000
Советник на основе п.и trend.

Вот решил написать советник(пишу в первый раз), но выдает ошибку.Может кто подскажет в чем проблема.Заранее благодарю.

PHP код:
//+------------------------------------------------------------------+
//| igor4.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

//---------------------------------------------------------------------------

extern double StopLoss =200;

extern double TakeProfit =100;

extern double Lots =0.1;

extern int period 10;

extern int price 1;

bool Mode_fact false;

bool signals false;

bool Work true;

extern double Prots =0.07;

string Symb;

//-------------------------------------//

int start()
{
//----
int

Total
,
Tip=-1,
Ticket;
double
valume
,
Lot,
Lts,
Min_Lot,
Step,
Free,
One_Lot,
Price,
SL,
TP;
bool
Ans 
=false,
Cls_B false,
Cls_S false,
Opn_B false,
Opn_Sfalse;

//-----------------------------------------------------------------------------------------//

Symb=Symbol();

Total=0;

for(
int i=1i<=OrdersTotal(); i++)
{ if (
OrderSelect(i-1,SELECT_BY_POS)==true)
{ if (
OrderSymbol()!=Symb)continue;
if (
OrderType()>1)
Alert("Обнаружен отложенный ордер. Эксперт не работает.");
return;
}
Total ++;
if (
Total 1)
{
Alert("Несколько рыночных ордеров. Эксперт не работает.");
return;
}
Ticket=OrderTicket();
Tip =OrderType();
Price =OrderOpenPrice();
SL =OrderStopLoss();
Lot =OrderLots();
}
}
//--------------------------------------------------------------------//

valume =CurrentPrice-iBands(NULL,0,Bands_Period,Bands_Deviation,0,Bands_Mode,Power_Price,i);

if (
valume 0);
{
Opn_B=true;
Opn_S=true;
}
if (
valume <= 0);
{
Cls_B=true;
Cls_S=true;

}
//------------------------------------------------------------------------------------------//

while(true)
{ if (
Tip==&& Cls_B==true)

{
Alert("Попытка закрыть Buy ",Ticket,". Ожидание ответа..");
RefreshRates();
Ans=OrderClose(Ticket,Lot,Bid,2);
if (
Ans==true)
Alert ("Закрыт ордер Buy ",Ticket); break;
} if (
Fun_Error(GetLastError())==1)
continue;
return; }
if (
Tip==&& Cls_S==true)
{
Alert("Попытка закрыть Sell ",Ticket,". Ожидание ответа..");
RefreshRates();
Ans=OrderClose(Ticket,Lot,Ask,2);
if (
Ans==true)
Alert ("Закрыт ордер Sell ",Ticket);
break;
} if (
Fun_Error(GetLastError())==1)
continue;
return;
}
break;
}
//-------------------------------------------------------------------------//
RefreshRates();
Min_Lot=MarketInfo(Symb,MODE_MINLOT);
Free =AccountFreeMargin();
One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);
Step =MarketInfo(Symb,MODE_LOTSTEP);
if (
Lots 0)
Lts =Lots;
else
Lts=MathFloor(Free*Prots/One_Lot/Step)*Step;
if(
Lts Min_LotLts=Min_Lot;
if (
Lts*One_Lot Free)
Alert(" Не хватает денег на "Lts," лотов");
return;
}
//-------------------------------------------------------------------------------
while(true)
{ if (
Total==&& Opn_B==true)
{
RefreshRates();
SL=Bid New_Stop(StopLoss)*Point;
TP=Bid New_Stop(TakeProfit)*Point;
Alert("Попытка открыть Buy. Ожидание ответа..");
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP);
if (
Ticket 0)
Alert ("Открыт ордер Buy ",Ticket);
return;
} if (
Fun_Error(GetLastError())==1)
continue;
return;
} if (
Total==&& Opn_S==true)
{
RefreshRates();
SL=Ask New_Stop(StopLoss)*Point;
TP=Ask New_Stop(TakeProfit)*Point;
Alert("Попытка открыть Sell. Ожидание ответа..");
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL,TP);
if (
Ticket 0)
Alert ("Открыт ордер Sell ",Ticket);
return;
}
if (
Fun_Error(GetLastError())==1)
continue;
return;
} break;
}
//----
return;
}
int Fun_Error(int Error){
switch(
Error)
{
case 
4Alert("Торговый сервер занят. Пробуем ещё раз..");
Sleep(3000); return(1);
case 
135:Alert("Цена изменилась. Пробуем ещё раз..");
RefreshRates(); return(1);
case 
136:Alert("Нет цен. Ждём новый тик..");
while(
RefreshRates()==false)Sleep(1);return(1); case 137:Alert("Брокер занят. Пробуем ещё раз..");
Sleep(3000);
return(
1);case 146:Alert("Подсистема торговли занята. Пробуем ещё..");
Sleep(500);
return(
1); case 2Alert("Общая ошибка.");
return(
0);case 5Alert("Старая версия терминала.");
Work=false;
return(
0); case 64Alert("Счет заблокирован.");
Work=false;
return(
0);case 133:Alert("Торговля запрещена.");
return(
0);case 134:Alert("Недостаточно денег для совершения операции.");
return(
0);default: Alert("Возникла ошибка ",Error); return(0); }
}
//-------------------------------------------------------------- 11 --
int New_Stop(int Parametr// Проверка стоп-прик.
{
int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);
if (
Parametr Min_Dist){
Parametr=Min_DistAlert("Увеличена дистанция стоп-приказа.");
}
return(
Parametr);

Внизу я прикрепил, не уверен я, что у меня все правильно поэтому внизу укажу логику торговли:

Задача советника, чтобы он только один ордер делал на покупку, потом продавал. То есть играл на повышение.

Как мне произвести в жизнь этот алгоритм?
алгоритм, если volume > 0, то покупать, меньше или ровно продавать.



Вот сам индикатор. http://forum.mql4.com/c/forum/2009/11/Trend.rar
olegt вне форума  
Старый 05.12.2009, 06:35
#2
Любитель
 
Пол: Мужской
Возраст: 29
Адрес: Тюмень
Инвестирую в: Форекс
Регистрация: 05.01.2009
Сообщений: 336
Благодарностей: 73
УГ: 0
КП: 0.000
Ответ: Советник на основе п.и trend.

olegt, есть у меня подозрение что этот индикатор просто перерисовывается, и кажется что он всегда в точку бьет. Обратите внимание - еще цена не начала двигаться а он уже дает сигнал. Я юзал похожий FX_FISH.. внешне один в один. Может в этом проблема?
Simmk700 вне форума  
Старый 05.12.2009, 13:22
#3
bvn
Заблокированный
 
Имя: Виталий
Пол: Мужской
Адрес: Полтава, Украина
Инвестирую в: Форекс
Регистрация: 17.06.2008
Сообщений: 7,352
Благодарностей: 3,603
УГ: 0
КП: 0.000
награды Волшебный горшочек 
Ответ: Советник на основе п.и trend.

Не знаю, стоило ли вставлять свои 5... Если не к месту, то можете мой пост просто проигнорировать.

Так вот я считаю, что для того, чтобы люди захотели искать ошибку в коде, нужно:
1. Четко указать какую именно ошибку выдает и когда (во время комплияции или во время исполнения).
2. Не постить длинный код всей программы, а локализовать ту часть, где возникает ошибка.
3. Использовать удобочитаемый стиль кодирования.

В противном случае, программистам, чтобы ответить на вопрос, надо брат ваш код, копировать в файл, пытаться его скомпилировать и запустить, потом разбираться в плохо читаемом коде и находить ошибку... Большинство программистов, включая меня, обламаются еще в самом начале... Запускать терминал? Редактор? Копировать код? Да ну его...
Баннер: {{ slide.title }}
bvn вне форума  
Ответить
Войдите, чтобы оставить комментарий.
Сообщения прочитаны и/или просмотрены Сегодня, 21:37
Опции темы

Быстрый переход


Случайные темы
Аватар bizneser
Elmodis для интегрированных аппаратных решений привлекла $4.9 млн инвестиций
От bizneser в разделе «Новости в мире финансов и инвестиций»
Аватара нет
WMID 200197182853 - Требуется: 30$
От riko7 в разделе «Архив: Прием лимитов доверия»
Аватар cooleo
Perfect Money на WMZ (1 к 1)
От cooleo в разделе «Архив: Обмен электронных валют»
Аватара нет
manafaucet.website,15 (90%), 300 (10%) satoshi every 10 minutes.FaucetHub
От chibis00 в разделе «Список проблемных/неактивных/закрытых кранов»
Аватар bizneser
Учёные создали аккумулятор, который заряжается в 100 раз быстрее литий-ионного
От bizneser в разделе «Новости технологий и интернета»
Аватар ГераЯ
ПАММ-счет Barabashka : 9500669 (FXOpen)
От ГераЯ в разделе «Архив: Инвестирование в ПАММ-счета»
.     
Пользователей
434,701
Тем
504,386
Сообщений
12,663,668

mmgp.telegram