Как кодировать? - страница 153

 
Roger09:
На чивинг

Попробуйте это:

#property copyright "Copyright ?2004, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net/"

#property show_inputs

bool result;

extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE

//+------------------------------------------------------------------+

//| script "delete pending order" |

//+------------------------------------------------------------------+

int start()

{

for (int number=OrdersTotal()-1; number >= 0; number--)

{

OrderSelect(number,SELECT_BY_POS,MODE_TRADES);

if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) continue;

if (OverSymbolDel ==0&& Symbol()==OrderSymbol() ) delPending();

if (OverSymbolDel ==1) delPending();

}

}

//+------------------------------------------------------------------+

void delPending()

{

OrderPrint();

int ticket =OrderTicket();

result=OrderDelete(ticket);

if (!result) Print("Error when delete Order ", GetLastError() );

}

if ( (OverSymbolDel ==0 ) && (Symbol()==OrderSymbol() ) delPending();

изменить на

if ( (OverSymbolDel ==0 ) && (Symbol()==OrderSymbol() )) delPending();

 

GetClientRect???

Как мне поступить, если я хочу получить клиентские координаты графика?

Я хочу узнать правые нижние координаты без использования OBJPROP_CORNER.

С наилучшими пожеланиями.

 

Eu h1 ea

пожалуйста, помогите мне изменить лучший

 

Помогите с логикой

Привет всем,

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

ЛОГИКА ПОКУПКИ:

If (MA_1 > MA_2) and (Previous(MA_1 < MA_2)) // A moving average cross mean we have a "GET READY" signal

// Once we have a "GET READY" signal the following conditions need to be true

// in order for the system to create a "BUY_SIGNAL".

// Note: the following conditions do not necessarily have to become true on the exact same bar,

but need to trigger true within + or - 2 bars of the "GET READY" bar.

( CLOSE > MA3 ) // Price closes above a MA

( CCI Crosses above the ZERO line ) // CCI crosses up above zero

( Fast Stochastic crosses above Slow Stochastic ) // Stochastic triggers to the up side

Логика продажи прямо противоположна логике покупки.

Мне не нужен полный код эксперта, только логика, преобразованная в MQL 'IF' и 'LOOP' операторы для отработки сигнала. Я думаю, что смогу разобраться с кодом OpenOrder и т.д... из многих примеров, уже приведенных в этой теме.

Любая помощь, которую кто-либо может оказать, будет очень признательна.

Спасибо,

Moxy

 

Лучше всего заглянуть в файл справки метаэдитора.

Посмотрите на такие функции, как iMa, iStochastic и iCCI. В них есть примеры, и если вы объедините их с информацией, которую вы получите, посмотрев код любого советника, вы легко справитесь с задачей.

Удачи

Lux

 
luxinterior:
Лучше всего посмотреть в файле помощи метаредактора.

Посмотрите на такие функции, как iMa, iStochastic и iCCI. В них есть примеры, и если вы объедините их с информацией, которую вы получите, просматривая код любого советника, вы легко справитесь с задачей.

Удачи

Lux

Привет, Лакс,

Спасибо за ответ. Я могу разработать отдельные утверждения iMA и т.д... проблема в том, как ссылаться на различные временные бары после срабатывания сигнала. Например... Если у меня есть сигнал GET READY, мне нужно посмотреть на 2 бара до и 2 бара после (всего 5 баров) для других индикаторов, чтобы подтвердить, что у меня есть СИГНАЛ ПОКУПКИ на открытии следующего бара. Не уверен, есть ли в моих словах смысл!

Думаю, да... как мне структурировать необходимые циклы FOR и т.д., когда мне нужно ссылаться на бары как до, так и после обрабатываемого бара.

С уважением,

Moxy

 
Moxy:
Привет Лакс,

Спасибо за ответ. Я могу разработать отдельные заявления iMA и т.д.... проблема в том, как ссылаться на различные временные бары после срабатывания сигнала. Например... Если у меня есть сигнал GET READY, мне нужно посмотреть на 2 бара до и 2 бара после (всего 5 баров) для других индикаторов, чтобы подтвердить, что у меня есть СИГНАЛ ПОКУПКИ на открытии следующего бара. Не уверен, есть ли в моих словах смысл!

Думаю, да... как мне структурировать необходимые циклы FOR и т.д., когда мне нужно ссылаться на бары как до, так и после обрабатываемого бара.

С уважением,

Moxy

Вы делаете это, используя переменную shift в iMA(). Вы также можете сделать это с помощью значений Open, High, Low, Close, т.е. Close[3], который находится на расстоянии 3 баров от текущего бара.

 

Скользящее среднее из движений

Мне нужна небольшая помощь с кодом, я хочу определить набор средних движений вокруг MA, поэтому от самого старого BAR я ищу движения выше и ниже, помещаю их в массив, затем усредняю этот массив.

Вот код, с которого я начинаю, ищу немного помощи, чтобы сделать это.

double AverageMove()

{

int cbars = iBars(Symbol(),EntryTimeFrame);

int counted_bars = 0,RangeCounter=0,ndx=0,iLimit=0;

double retval,averagemove,pHValue,pLValue,MAvalue,RangeValue[],EntryPoint,cHigh,cLow;

bool reset,TradeShort,TradeLong;

iLimit=Bars-1;

if(Symbol() != "AUDNZD") return(0);

for(ndx=0; ndx<iLimit; ndx++)

{

MAvalue = iMA(Symbol(),EntryTimeFrame,EntryMAInterval,0,MovingAverageType,PRICE_MEDIAN,ndx);

pHValue = High[ndx];

pLValue = Low[ndx];

if(MAvalue pLValue)

{

if(Symbol() =="AUDNZD") Print("MAValue="+MAvalue+" pHValue="+pHValue+" plValue="+pLValue);

сброс = true;

if(EntryPoint > 0 && cHigh > 0)

{

RangeCounter++;

RangeValue[RangeCounter]=cHigh - EntryPoint;

}

if(EntryPoint > 0 && cLow > 0)

{

RangeCounter++;

RangeValue[RangeCounter]=EntryPoint - cLow;

}

EntryPoint = MAvalue;

}

if(pHValue < MAvalue && reset) TradeShort = true;

if(pLValue > MAvalue && reset) TradeLong = true;

if(TradeLong)

{

reset = false;

cHigh = pHValue;

}

if(TradeShort)

{

reset = False;

cLow = pLValue;

}

}

ArraySetAsSeries(RangeValue,true);

retval=iMAOnArray(RangeValue,RangeCounter,13,1,PRICE_MEDIAN,0);

Print("Average Move "+retval);

}

 

Я хотел бы узнать клиентскую зону на графике.

Здравствуйте,

Я хотел бы узнать клиентскую зону на графике.

Пожалуйста, подскажите мне.

Предполагая, что точка левого верхнего угла - (0,0), пожалуйста, сообщите мне координаты правого нижнего.

В этом случае ObjectSet("",OBJPROP_CORNER,3) не должен использоваться.

Большое спасибо и наилучшие пожелания,

 

Мокси,

Если я правильно вас понял, то вам нужно будет закодировать это построчно в советнике.

пример

MA1, индекс-1 раньше

MA1, индекс сейчас

MA1, индекс+1 после

у вас есть основы

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