如何编码? - 页 268

 

另一个问题

所以我修改了那个Crossed函数,用MA_04_1H > MA_14_1H来代替cross == 1 ,等等......,典型地解决了这个问题。但我想知道我如何能过滤掉诸如买入、收盘、买入、收盘、买入、收盘、卖出、收盘等交易。它正在逐分蚕食余额,如-0.17,-0.18,-0.21,-0.15,等等....。

现在,我实际上是想实现一些东西,如果我买入一个较小的手数,并且获利,我就关闭该订单,并打开一个新的较大的订单,直到交叉发生...但上面的问题我似乎无法解决...

有人知道如何过滤掉那些无用的小交易吗?

 

需要为这一代码制定一个fl

你好。

我需要这段代码的fl

#属性 indicator_separate_window

#属性 indicator_buffers 8

#属性 indicator_color1 C'0x66,0xB3,0xFF'.

#属性 indicator_color2 DodgerBlue

#属性 indicator_color3 C'0x00,0x67,0xCE'.

#属性指示器_color4 白色

#属性指示器_颜色5 C'0xFF,0x33,0x33'。

#属性指示器_color6 C'0xC4,0x00,0x00'。

#属性指示器_color7 C'0x8C,0x00,0x00'。

#属性 indicator_color8 C'0x82,0x24,0x00'。

外部int Periode = 30;

外部 bool invert_strength = FALSE;

外部字符串 CurrencyPair = ""。

extern string NOTE0 = "用大写字母输入货币对"。

extern string NOTE1 = "像EURUSD";

外置字符串NOTE2 = "为当前符号留空"。

外部字符串NOTE3 = "如果你有一个迷你账户"。

外部字符串NOTE4 = "添加一个 \"m\" 例如EURUSDm "。

double g_ibuf_132[];

double g_ibuf_136[];

double g_ibuf_140[];

double g_ibuf_144[];

双份g_ibuf_148[]。

双份g_ibuf_152[]。

双份g_ibuf_156[]。

双份g_ibuf_160[]。

双倍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)。

如果(CurrencyPair == "") CurrencyPair = Symbol();

如果(iClose(CurrencyPair, 0, 0) == 0.0) CurrencyPair = Symbol();

IndicatorShortName(CurrencyPair + "(" + Periode + ")")。

返回(1)。

}

int deinit() {

返回(0)。

}

int start() {

双倍 ld_8;

int li_0 = IndicatorCounted();

如果 (li_0 < 0) 返回 (-1);

如果(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)。

如果(invert_strength == TRUE)ld_8 -= 2.0 *(ld_8 - 50.0)。

如果(ld_8 <= 45.0) {

如果(ld_8 42.0) drawblock(0, 0, 0, 0, 5, 0, 0, li_4);

否则 {

如果 (ld_8 38.0) drawblock(0, 0, 0, 0, 5, 0, 0, li_4);

否则 {

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

否则 drawblock(0, 0, 0, 0, 0, 0, 5, li_4);

}

}

} else {

如果(ld_8 >= 55.0) {

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

否则 {

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

否则 drawblock(0, 0, 5, 0, 0, 0, 0, li_4);

}

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

}

}

返回(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;

}

或者请给我解释一下这背后的逻辑

谢谢

kr

 

如何不买入、关闭、买入、关闭或卖出、关闭、卖出、关闭......。

请...我真的需要知道如何避免那些无利可图的交易...

 

急需帮助。将指标转换为EA(自动交易)。

我是一个程序员,但是是mql4编程 的新手。

我正试图创建一个关于指标的EA(自动交易)。

我附上了该指标。这个指标给出了良好的趋势信号。

现在想做一个关于趋势信号的自动交易器。

算法。

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

如果出现下跌信号,则打开卖出订单并关闭之前的买入订单。

如果上升信号,则开立买入订单并关闭之前的卖出订单。

继续 ....

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

我想把这个指标的手动交易改为自动交易。

有人能帮助我吗?我试过,但没有得到结果。

我认为这将是一个很好的自动交易商。请帮助我。

附加的文件:
 

简单的问题,找不到答案......

谁能告诉我为什么这样做。

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符号中数组的第一个元素的索引是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], ...)

这样我就得到了高点。我的声明是。

字符串 symbol[] 或者应该是字符串[] symbol[] ?

如果我试图用Alert(symbol[9])来打印它,它也会给出一个空位,这是个很奇怪的问题......但无论如何感谢你的建议。

这是我的代码,我使用阿尔帕里5位数的经纪人(由于某些原因,警报给我的是零)。

double high,low,price,distance,plaats;

int i,j,ticket, waarde;

字符串符号[]。

字符串 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);

价格 = MarketInfo(symbol[9],MODE_ASK)。

Alert(price)。

}