Нужна помощь в создании ОЧЕНЬ простого советника - страница 3

 

//+------------------------------------------------------------------+
//| Stepper.mq4 |
//| doshur |
//| www.doshur.com |
//+------------------------------------------------------------------+
#property copyright "doshur"
#property link "www.doshur.com"

extern int TakeProfit = 5;
extern int Range = 20;
extern int Risk = 2;

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
return(0);
}

int deinit()
{
return(0);
}

int start()
{
//----
static bool ToTrade = false;
static bool FirstTrade = true;

double PrevLow = iLow(Symbol(), 0, 1);
double PrevHigh = iHigh(Symbol(), 0, 1);
double PrevRange = (PrevHigh - PrevLow) / Point;

if(NewBar())
{
if(FirstTrade == false)
{
if(PrevRange >= Range)
ToTrade = true;
else
ToTrade = false;
}
else
{
FirstTrade = false;
}
}

if(ToTrade)
{
if(COT(1) < 1)
{
if(Ask > PrevHigh)
OrderSend(Symbol(), OP_BUY, MM(PrevRange, Risk), Ask, 3, PrevLow, Ask + TakeProfit * Point, "Stepper - BUY", 57390, 0, Blue);
}

if(COT(2) < 1)
{
if(Bid < PrevLow)
OrderSend(Symbol(), OP_SELL, MM(PrevRange, Risk), Bid, 3, PrevHigh, Bid - TakeProfit * Point, "Stepper - SELL", 57391, 0, Red);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+

//---- Check Is New Bar
bool NewBar()
{
static datetime PrevBar;

if(PrevBar < Time[0])
{
PrevBar = Time[0];
return(true);
}
else
{
return(false);
}

return(false);
}

//---- Check Open Trades
int COT(int BS)
{
int Buys = 0, Sells = 0;

for(int cnt_COT = 0; cnt_COT < OrdersTotal(); cnt_COT++)
{
OrderSelect(cnt_COT, SELECT_BY_POS, MODE_TRADES);

if(OrderType() == OP_BUY && OrderSymbol() == Symbol()) Buys++;
if(OrderType() == OP_SELL && OrderSymbol() == Symbol()) Sells++;
}

if(BS == 1) return(Buys);
if(BS == 2) return(Sells);
}

//---- Money Management
double MM(int SL, int RK)
{
double rLots = NormalizeDouble(AccountBalance() / 1000 * RK / SL, 1); // Risk ?% of balance

if(rLots < 0.1) rLots = 0.1;

return(rLots);
}


Выполнил первый запуск для преодоления этой проблемы и некоторых других

Код не тестировался

Пожалуйста, протестируйте и перечислите другие поправки.

 

is there away where we can modify the stop loss to so 15 or 20 instead of the other end of the candle?

 

crazfoto 2008.12.02 08:27 есть ли возможность изменить стоп лосс на 15 или 20, а не на другой конец свечи?


ДА. Это возможно.

 

это для 2-часовой средней? или другая версия 30-минутной?


Если это 2-часовая средняя, то вчера не было совершено ни одной сделки.

 
crazfoto:

это один для 2-часовой средней? или другая версия для 30-минутной?


Если это 2-часовая средняя, то вчера не было совершено ни одной сделки.

Вы имеете в виду мои коды?

Он реализован в течение 30 минут, как вы и просили.

 

ой, виноват. я сейчас все проверю.


Спасибо большое за помощь. я поиграл с ним на 4-х часовом графике. думаю, если я изменю стоп на 15 или 20 пунктов на 4-х часовом графике, результаты будут хорошими. и то, к чему я привык.

 
будет ли он работать на автономном 2-часовом графике? Я вижу, что у многих людей есть проблемы с использованием советников на автономных графиках.
 
он работает только на часовом графике
 
Хорошо. он работает на 30-минутном графике, но он продолжает вводить ордер каждый раз, когда один выплачивается. так что он не ждет, пока 30-минутная свеча закончит формироваться, прежде чем вводить новый ордер.
 

ой.

Я забыл отключить, как только он вошел.

Позвольте мне изменить код

Причина обращения: