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

 

изучить графики 2010 года

используя ваш шаблон, чтобы создать что-то - над лигой Стохастика

как мы использовали наши стохастические графики в ранние дни - применимо ли это к графикам 2010 года - это реальные трейдеры, Бад, и вы могли бы получить его задания - я занимаюсь программированием математики интеграла Лебега без бандинга - помните фильм "Она вне моей лиги" --- хорошая работа означает хорошую оплату -----

читайте коды - немного менее сложные, чем текущий инвестиционный стиль в 2010 году

 
scottyb:
Я перепробовал практически все возможные варианты устранения проклятой ошибки с чертовыми скобками, которую я получаю при попытке компиляции. Я смотрел на это в течение многих часов, но мне не удалось это исправить. Я определил, что это участок кода, который портит скрипт. Кто-нибудь может подсказать, что не так (кроме того, что я идиот).

void ScanForClosure ()

{

int cash = OrderProfit() + OrderSwap() + OrderCommission()

int MacdCurrent, MacdPrevious, SignalCurrent;

int SignalPrevious, MaCurrent, MaPrevious;

int total2 = OrdersTotal();

int numords2 = 0;

bool type = false;

int trd2 = 0;

MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);

MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);

SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);

SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);

MaCurrent=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,0);

MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,1);

ArrayResize(lastOrders,5);

ArrayInitialize(lastOrders,0);

//

for(int cnt=0; cnt<total2; cnt++)

{

OrderSelect(cnt, SELECT_BY_POS);

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) ;

{

if ((OrderType()==OP_BUY)&&

(MacdCurrent>0)&&

(MacdCurrent<SignalCurrent)&&

(cash > 0)&&

(MacdPrevious>SignalPrevious) && MacdCurrent>(MACDCloseLevel*Point));

{

CloseOrder(1);

}

if ((OrderType()==OP_SELL)&&.

(cash > 0)&& (MacdCurrent<0 ) &&

(MacdCurrent>SignalCurrent)&&

(MacdPrevious<SignalPrevious)&&

(MathAbs(MacdCurrent))>(MACDCloseLevel*Point));

{

CloseOrder(2);

}

}

}

}

Привет, Скотти,

Я копирую из примера macd

if(OrderType()==OP_BUY)

{

if(MacdCurrent>0 && cash > 0 && MacdCurrentSignalPrevious &&

MacdCurrent>(MACDCloseLevel*Point))

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);

return(0);

}

else

{

if(MacdCurrent 0 && MacdCurrent>SignalCurrent &&

MacdPrevious(MACDCloseLevel*Point))

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // закрытие позиции

return(0);

}

С уважением

инструменты

 
forextrend:
почему этот код выдает ошибку неправильного количества параметров:

for(int i = 0;i < 3;i++)

{

kline = iStochastic(NULL,TimeFrame1, Period(), 4, 3, 3, MODE_SMA, 1, MODE_MAIN, i);

dline = iStochastic(NULL,TimeFrame1, Period(), 4, 3, 3, MODE_SMA, 1, MODE_SIGNAL, i);

}

Должно быть

int counted_bars = IndicatorCounted();

int limit,i;

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

limit = Bars - counted_bars;

for(int i=limit; i>=0; i--)

{

kline = iStochastic(NULL,TimeFrame1, 4, 3, 3, MODE_SMA, 1, MODE_MAIN, i);

dline = iStochastic(NULL,TimeFrame1, 4, 3, 3, MODE_SMA, 1, MODE_SIGNAL, i);

С уважением,

инструменты

 

Спасибо, господин Инструмент, может быть, я делал его слишком сложным, но что в нем было не так? Сканирует ли этот пример все открытые билеты? Я думаю, что он будет сканировать только 2 (один на покупку и один на продажу), скорее всего один и тот же каждый раз :/ Я очень новичок в программировании mt4, но я уверен, что так и будет.

 

разобрался.

удивительно, что ты смотришь на одну и ту же проблему 10 часов подряд и не можешь ее решить. Я посмотрел еще раз. Когда я проснулся, я решил ее за 5 часов. Похоже, код MT4 очень жесткий. Похоже, вам нужно написать именно то, что он ищет (независимо от того, можете ли вы сделать то же самое на 10 других языках и работать).

Я создавал ботов для World of Warcraft, чтобы персонаж бегал сам по себе в игре, находя и убивая вещи, но когда я пытаюсь сделать простую процедуру покупки-продажи в MT4, я испытываю трудности.

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

OrderSelect(cnt, SELECT_BY_POS);

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)

{

if (OrderType()==OP_BUY)

if (profit>0)

if (MacdCurrent<SignalCurrent)

if (MacdCurrent>0)

если (MacdPrevious>SignalPrevious)

if (MacdCurrent>(MACDCloseLevel*Point))

{

CloseOrder(1);

}

if (OrderType()==OP_SELL)

if ((MacdCurrent<0) )

if (profit >0 )

if (MacdCurrent>SignalCurrent)

если (MacdPrevious<SignalPrevious)

если (MathAbs(MacdCurrent) >(MACDCloseLevel*Point))

 

Помощь по коду - Фракталы

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

Я ищу помощь в коде, необходимом для выполнения следующих действий в рамках системы, над которой я работаю:

Valid Long if:

(нумерация от самого старого до самого последнего 1-x)

-> Фрактал, направленный вниз 1 выше, чем фрактал вниз 2

-> Формируется фрактал Вверх 1 и создается условие возможного прорыва в лонг, однако

-> Фрактал Направленный вниз 3 должен быть выше, чем Фрактал Направленный вниз 2

-- Это подтверждает изменение тренда. Прорыв цены вверх верхнего фрактала будет действительным TRUE. Если формируется новый, более низкий верхний фрактал, то это и будет новой точкой прорыва БЕЗ наличия более низкого фрактала вниз, чем предыдущий фрактал вниз. Нижние фракталы должны формировать более высокие максимумы.

Обратное верно для короткого подтверждения.

Спасибо

Аарон

 

Попробую объяснить немного лучше

Итак, существует восходящий тренд цены, формируется верхний фрактал. Цена отступает и формируется нижний фрактал. Цена продолжает отступать, и формируется еще один, нижний, нижний фрактал.

Затем цена идет вверх, формируя новый, нижний, верхний фрактал.

Цена отступает, и формируется еще один нижний фрактал, но он выше, чем предыдущий нижний фрактал.

Цена пробивает предыдущий верхний фрактал, действительное условие прорыва в длину.

PS Если формируется новый, более низкий, верхний фрактал, но нижние фракталы продолжают достигать более высоких максимумов, новой точкой прорыва является последний верхний фрактал.

PPS Если начинают формироваться нижние фракталы, условия сбрасываются, и мы продолжаем искать вышеуказанные или обратные условия для короткого подтверждения прорыва.

Спасибо

Аарон

 

А какая именно помощь в программировании вам нужна? Вам нужно запрограммировать всю систему?

 

Только логическая часть.

Скажем, bool, который является ValidBuy = FALSE;

если происходит логическое условие, как указано выше, он устанавливает его в TRUE.

Я уверен, что это массив, а затем сравнение значений массива, но я не так велик, когда дело доходит до кодирования массивов.

Спасибо

Аарон

 

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

double fractal = FindFractal( 0, MODE_LOWER );[/CODE]

first parameter being number of fractal (0-last, 1-one before last, etc.) and second parameter telling if you want upper or lower fractal.

Then, you can code like this:

[CODE]double last_lower_fractal = FindFractal( 0, MODE_LOWER );

double previous_lower_fractal = FindFractal( 1, MODE_LOWER );

if( last_lower_fractal > previous_lower_fractal )

{

//we have found that most recent lower fractal is higher than its predecessor, do rest of your logic here.

}

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