Как кодировать? - страница 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% уверен, что это должно работать, на самом деле, я только что провел быстрый тест, чтобы доказать это. Должно быть что-то еще не так с вашим кодом.

[Deleted]  
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);

}