Помогите пожалуйста программисты - страница 2

 
joo:

  Не расстраивайтесь. Изложите здесь то, что хотите получить, и Вам помогут. 

Под вопросом.

А скрипт качается. Что удалили? 

 
Dersu:

Под вопросом.

А скрипт качается. Что удалили?

Ничего не понял. Что под вопросом? Какой скрипт качается и куда? Что "Что удалили?"?
 

Сорри, не проснулся. И поспешил.

Timofeika:
исходник
 

А под вопросом ваше утверждение. Не факт.

Сам иногда задаю. И вроде связно.

Как в том анекдоте: и жену приводил и штаны снимал - а унитаза так и не отпустили. 

 

Когда ставлю скрипт на график, при открывании позиции некоторые не открываются из-за реквотов. Сам я не силен в программировании, хотелось бы убрать эти реквоты, из-за них не открывается позиция (примерно 60% не открывается).

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

 
Timofeika:

Когда ставлю скрипт на график, при открывании позиции некоторые не открываются из-за реквотов. Сам я не силен в программировании, хотелось бы убрать эти реквоты, из-за них не открывается позиция (примерно 60% не открывается).

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

Вам же говорят - опишите суть скрипта, по какой логике он работает. Исходник удалили, а телепаты уволились позавчера все
 
IgorM:


ЗЫ: ну есть форумы где программисты и занимаются взломом софта - причем заметьте взлом чушого продукта - задача намного сложнее чем написание кода с нуля


И чем же по Вашему мнению сложнее?
 

Всем привет!

Уже 4 дня мучаюсь, не пойму в чем дело. Решил добавить в советник, который разворачивется по наклону скользящей средней трелинг стоп по противоположным экстремумам свечей, цвет которых совпадает с направлением открытой позиции. Т.е. если открыта бай, то стоп будет тралиться по минимумам белых свечей. После написания обнаружил, что для позиций бай стоп тралится, а для селл - нет, а прописаны они одинаково с точностью до наоборот. Причем ошибок не выдает: Алерт выводит "0". Заметил интересную особенность: если убрать проверку черная ли свеча: if (Open[1] > Close[1]), то все работает и стоп выставляется но уже по экстремумам всех свечей. Никак не пойму в чем дело. Огромная просьба поделиться соображениями если у кого-то они появились. Вот эксперт, на всякий случай прикрепляю еще и файл (там то же самое). 

//+------------------------------------------------------------------+
#property copyright "Михал Сергеич"
#property link "http://www.vedikhin.ru"

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+

extern int LotsNumber=1;
extern int stoploss=16000;
extern int takeprofit=0;
extern int period =7;
extern int ma_method = 1;
extern int price = 0;
extern int T = 240;


int a;
int M;
int i = 0;

int init()
{
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
datetime OldTime;
int start()
{
double M_1, M_2, M_3; // Значение MAIN на 1 и 2 барах
//--------------------------------------------------------------------
{
datetime Time0=iTime(NULL,T,0);
if(OldTime==Time0)return(0);
OldTime=Time0;
//--------------------------------------------------------------------
// Обращение к функции техн.индикат.
M_1 = iMA(NULL, 0, period, 0, ma_method, price, 1);
M_2 = iMA(NULL, 0, period, 0, ma_method, price, 2);
M_3 = iMA(NULL, 0, period, 0, ma_method, price, 3);

//--------------------------------------------------------------------
if( M_1 > M_2 && M_2 < M_3 ) // Наклон вверх
{
if (M > 0)
{
RefreshRates();
if ( OrderSelect (1, SELECT_BY_POS, MODE_TRADES) == true ||
OrderSelect (0, SELECT_BY_POS, MODE_TRADES) == true ||
OrderSelect (2, SELECT_BY_POS, MODE_TRADES) == true)
{
RefreshRates();
bool c = OrderClose(M, LotsNumber, Ask, 100, Yellow);
while (c == false)
{
RefreshRates();
c = OrderClose(M, LotsNumber, Ask, 100, Yellow);
}
}
c=false;
}
RefreshRates();
M = OrderSend (Symbol(), OP_BUY, LotsNumber, Ask, 100, Ask-stoploss*Point, 0, NULL, 0, 0, Blue);
while (M < 0) // Проверяем, открылась ли позиция, если нет - пытаемся открыть пока не получится
{
RefreshRates();
M = OrderSend (Symbol(), OP_BUY, LotsNumber, Ask, 100, Ask-stoploss*Point, 0, NULL, 0, 0, Blue);
}
//---------------------------------------------------------------------------------------------------------+
}
if( M_1 < M_2 && M_2 > M_3) // наклон вниз
{
if (M > 0)
{
RefreshRates();
if ( OrderSelect (1, SELECT_BY_POS, MODE_TRADES) == true ||
OrderSelect (0, SELECT_BY_POS, MODE_TRADES) == true ||
OrderSelect (2, SELECT_BY_POS, MODE_TRADES) == true)
{ // проверяем, есть ли открытая позиция
RefreshRates();
c = OrderClose(M, LotsNumber, Bid, 100, Yellow);
while (c == false)
{
RefreshRates();
c = OrderClose(M, LotsNumber, Bid, 100, Yellow);
}
}
}
c=false;
RefreshRates();
M = OrderSend (Symbol(), OP_SELL, LotsNumber, Bid, 100, Bid+stoploss*Point, 0, NULL, 0, 0, Red);
while (M < 0)
{
RefreshRates();
M = OrderSend (Symbol(), OP_SELL, LotsNumber, Bid, 100, Bid+stoploss*Point, 0, NULL, 0, 0, Red);
}
}
//----------------------------------------------------------------+

if ( OrderSelect (1, SELECT_BY_POS, MODE_TRADES) == true ||
OrderSelect (0, SELECT_BY_POS, MODE_TRADES) == true || // проверяем, есть ли открытая позиция
OrderSelect (2, SELECT_BY_POS, MODE_TRADES) == true)
{
if (OrderType() == OP_BUY)
{
RefreshRates();
if (Close[1] > Open[1]) // проверяем белая ли свеча
{
RefreshRates();
OrderSelect (M, SELECT_BY_TICKET, MODE_TRADES);
if (Low[1] > OrderStopLoss() && Low [1] < Ask) // проверяем
{
RefreshRates();
OrderSelect (M, SELECT_BY_TICKET, MODE_TRADES);
c = OrderModify(M, OrderOpenPrice(), Low[1], 0, 0, Green);
while (c == false || i>=3)
{
RefreshRates();
OrderSelect (M, SELECT_BY_TICKET, MODE_TRADES);
c = OrderModify(M, OrderOpenPrice(), Low[1], 0, 0, Green);
i++;
}
i = 0;
}
}
}

if (OrderType() == OP_SELL)
{
RefreshRates();
if (Open[1] > Close[1])
{
RefreshRates();
OrderSelect (M, SELECT_BY_TICKET, MODE_TRADES);
if (High[1] < OrderStopLoss() && High[1] > Bid)
{
RefreshRates();
OrderSelect (M, SELECT_BY_TICKET, MODE_TRADES);
c = OrderModify(M, OrderOpenPrice(), High[1], 0, 0, Green);
Alert (c);
while (c == false || i>=3)
{
RefreshRates();
OrderSelect (M, SELECT_BY_TICKET, MODE_TRADES);
c = OrderModify(M, OrderOpenPrice(), High[1], 0, 0, Green);
i++;
Alert (c);
}
i = 0;
}
}
}
}
//-------------------------------------------------------------------+
}
}
return(0);
//+------------------------------------------------------------------+
 

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