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

 

другая проблема

поэтому я пересмотрел функцию Crossed с MA_04_1H > MA_14_1H вместо cross == 1, и так далее... и это обычно устраняет проблему... Но мне интересно, как я могу отфильтровать такие сделки, как buy,close,buy,close,buy,close,sell,close,... Это съедает баланс цент за центом, как -0.17, -0.18, -0.21, -0.15, и так далее.....

Сейчас я пытаюсь реализовать что-то, что если я покупаю меньший лот и он приносит прибыль, я закрываю этот ордер и открываю новый больший, пока не произойдет пересечение... но проблему выше я не могу решить...

кто-нибудь знает, как отфильтровать эти маленькие бесполезные сделки?

 

нужен afl для этого кода

Привет ,

Мне нужен afl для этого кода

#property indicator_separate_window

#property indicator_buffers 8

#property indicator_color1 C'0x66,0xB3,0xFF'

#property indicator_color2 DodgerBlue

#property indicator_color3 C'0x00,0x67,0xCE'

#property indicator_color4 Белый

#property indicator_color5 C'0xFF,0x33,0x33'

#property indicator_color6 C'0xC4,0x00,0x00'

#property indicator_color7 C'0x8C,0x00,0x00'

#property indicator_color8 C'0x82,0x24,0x00'

extern int Periode = 30;

extern bool invert_strength = FALSE;

extern string CurrencyPair = "";

extern string NOTE0 = "введите валютную пару в верхнем регистре";

extern string NOTE1 = "например, EURUSD";

extern string NOTE2 = "оставить пустым для текущего символа";

extern string NOTE3 = "если у вас есть мини-счет";

extern string NOTE4 = "добавить \"m\", например EURUSDm ";

double g_ibuf_132[];

double g_ibuf_136[];

double g_ibuf_140[];

double g_ibuf_144[];

double g_ibuf_148[];

double g_ibuf_152[];

double g_ibuf_156[];

double g_ibuf_160[];

double gda_unused_164[];

int init() {

SetIndexBuffer(0, g_ibuf_132);

SetIndexBuffer(1, g_ibuf_136);

SetIndexBuffer(2, g_ibuf_140);

SetIndexBuffer(3, g_ibuf_144);

SetIndexBuffer(4, g_ibuf_148);

SetIndexBuffer(5, g_ibuf_152);

SetIndexBuffer(6, g_ibuf_156);

SetIndexBuffer(7, g_ibuf_160);

SetIndexStyle(0, DRAW_HISTOGRAM, EMPTY, 5, C'0x66,0xB3,0xFF');

SetIndexStyle(1, DRAW_HISTOGRAM, EMPTY, 5, DodgerBlue);

SetIndexStyle(2, DRAW_HISTOGRAM, EMPTY, 5, C'0x00,0x67,0xCE');

SetIndexStyle(3, DRAW_HISTOGRAM, EMPTY, 5, White);

SetIndexStyle(4, DRAW_HISTOGRAM, EMPTY, 5, C'0xFF,0x33,0x33');

SetIndexStyle(5, DRAW_HISTOGRAM, EMPTY, 5, C'0xC4,0x00,0x00');

SetIndexStyle(6, DRAW_HISTOGRAM, EMPTY, 5, C'0x8C,0x00,0x00');

SetIndexStyle(7, DRAW_HISTOGRAM, EMPTY, 5, C'0x82,0x24,0x00');

for (int li_0 = 0; li_0 < 8; li_0++) SetIndexLabel(li_0, NULL);

if (CurrencyPair == "") CurrencyPair = Symbol();

if(iClose(CurrencyPair, 0, 0) == 0.0) CurrencyPair = Symbol();

IndicatorShortName(CurrencyPair + "(" + Periode + ")");

return (1);

}

int deinit() {

return (0);

}

int start() {

double ld_8;

int li_0 = IndicatorCounted();

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

if (li_0 > 0) li_0--;

for (int li_4 = Bars - li_0; li_4 >= 0; li_4--) {

ld_8 = iRSI(CurrencyPair, 0, Periode, PRICE_CLOSE, li_4);

if (invert_strength == TRUE) ld_8 -= 2.0 * (ld_8 - 50.0);

if (ld_8 <= 45.0) {

if (ld_8 42.0) drawblock(0, 0, 0, 0, 0, 5, 0, 0, 0, 0, li_4);

else {

if (ld_8 38.0) drawblock(0, 0, 0, 0, 0, 5, 0, 0, 0, li_4);

else {

if (ld_8 35.0) drawblock(0, 0, 0, 0, 0, 0, 5, 0, li_4);

else drawblock(0, 0, 0, 0, 0, 0, 0, 5, li_4);

}

}

} else {

if (ld_8 >= 55.0) {

if (ld_8 > 55.0 && ld_8 < 57.0) drawblock(5, 0, 0, 0, 0, 0, 0, 0, 0, li_4);

else {

if (ld_8 >= 58.0 && ld_8 < 60.0) drawblock(0, 5, 0, 0, 0, 0, 0, 0, 0, li_4);

else drawblock(0, 0, 5, 0, 0, 0, 0, 0, 0, li_4);

}

} else drawblock(0, 0, 0, 0, 5, 0, 0, 0, 0, 0, li_4);

}

}

return (0);

}

void drawblock(int ai_0, int ai_4, int ai_8, int ai_12, int ai_16, int ai_20, int ai_24, int ai_28, int ai_32) {

g_ibuf_132[ai_32] = ai_0;

g_ibuf_136[ai_32] = ai_4;

g_ibuf_140[ai_32] = ai_8;

g_ibuf_144[ai_32] = ai_12;

g_ibuf_148[ai_32] = ai_16;

g_ibuf_152[ai_32] = ai_20;

g_ibuf_156[ai_32] = ai_24;

g_ibuf_160[ai_32] = ai_28;

}

или, пожалуйста, объясните мне логику этого

спасибо

кр

 

как НЕ покупать, закрывать, покупать, закрывать или продавать, закрывать, продавать, закрывать...

пожалуйста... мне действительно нужно знать, как избежать этих убыточных сделок...

 

Срочная помощь. Преобразовать индикатор в советника (Auto Trader)

Я программист, но новичок в программировании mql4.

Я пытаюсь создать советник (автотрейдер) на основе индикатора.

Я прикрепил индикатор. Этот индикатор дает хорошие трендовые сигналы.

Теперь хочу сделать автотрейдера по сигналам тренда.

Алгоритм:

==================================================

Если СИГНАЛ ВНИЗ, то открываем ордер SELL и закрываем предыдущий ордер BUY

Если СИГНАЛ ВВЕРХ, то открываем ордер BUY и закрываем предыдущий ордер SELL

продолжить ....

==================================================

Я хочу перевести ручную торговлю в автоматическую относительно этого индикатора.

Кто-нибудь может мне помочь? Я пробовал, но не получил результата.

Я думаю, что это будет хороший автотрейдер. Пожалуйста, помогите мне.

Файлы:
 

простой вопрос, не могу найти ответ...

Может ли кто-нибудь сказать мне, почему это работает:

price = MarketInfo("GBPJPY",MODE_ASK);

а это не работает (когда символ - массив строк и 9-я запись - "GBPJPY"):

price = MarketInfo(symbol[9],MODE_ASK);

??

 
TomthebombNL:
Может ли кто-нибудь сказать мне, почему это работает:

price = MarketInfo("GBPJPY",MODE_ASK);

и не работает (когда символ - массив строк и 9-я запись - "GBPJPY"):

price = MarketInfo(symbol[9],MODE_ASK);

??

Из представленной вами информации я на 100% уверен, что это должно работать, на самом деле, я только что провел быстрый тест, чтобы доказать это. Должно быть что-то еще не так с вашим кодом.

 
codersguru:
jdun,

Проще всего изменить код (продать на купить и купить на продать):

if(signal0 < signal1 ) GlobalVariableSet("TM0",1);

if(signal0 > signal1) GlobalVariableSet("TM0",0);[/CODE]

To:

[CODE]if(signal0 > signal1 ) GlobalVariableSet("TM0",1);

if(signal0 < signal1) GlobalVariableSet("TM0",0);

приятно! Спасибо за эту информацию.

 

Я думаю, что, скорее всего, вы не определили ваш массив как строку.

 

Если "GBPJPY" является 9-м элементом в массиве, то его индекс в нотации mql равен 8, а не 9 (в нотации mql 1-й элемент массива имеет индекс 0), поэтому в этом случае нужно использовать эту форму:

price = MarketInfo(symbol[8],MODE_ASK);

Может в этом проблема?

TomthebombNL:
Может ли кто-нибудь сказать мне, почему это работает:

price = MarketInfo("GBPJPY",MODE_ASK);

а это не работает (когда символ - массив строк и 9-я запись - "GBPJPY"):

price = MarketInfo(symbol[9],MODE_ASK);

??
 

Я правильно понял число, но, возможно, напутал с объяснением, это 10-я запись, и чтобы получить ее, я использовал символ[9]. Странно, но это работает:

high = iHigh(symbol[9], ...)

это дает мне максимум. Моя декларация такова:

string symbol[] или должно быть string[] symbol[]?

Если я пытаюсь вывести его с помощью Alert(symbol[9]), он также выдает пустое пространство, довольно странная проблема... но в любом случае спасибо за ваши предложения.

Вот мой код, я использую 5-ти значного брокера Альпари (алерт почему-то выдает ноль):

double high, low, price, distance, plaats;

int i,j,ticket, waarde;

string symbol[];

string zoekplaatssymbol;

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

//| функция инициализации эксперта |

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

int init()

{

//----

//----

return(0);

}

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

//| функция деинициализации эксперта | |

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

int deinit()

{

//----

//----

return(0);

}

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

//| функция запуска эксперта |

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

int start()

{

//----

double usd=0.0;

double chf=0.0;

double eur=0.0;

double gbp=0.0;

double aud=0.0;

double cad=0.0;

double jpy=0.0;

double nzd=0.0;

symbol[21] = { "USDCHF" , "EURUSD" , "GBPUSD" , "USDJPY" , "AUDUSD" , "USDCAD" , "EURGBP" , "EURCHF" , "EURJPY" , "GBPJPY" , "GBPCHF" , "EURAUD" , "NZDUSD" , "CHFJPY" ,

"EURCAD" , "AUDCAD" , "AUDJPY" , "CADJPY" , "EURNZD" , "AUDNZD" , "NZDJPY"};

int total=OrdersTotal();

//zoekplaatssymbol = symbol[9];

// waarde = zoekplaats(zoekplaatssymbol);

price = MarketInfo(symbol[9],MODE_ASK);

Alert(price);

}

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