如何编码? - 页 68

 

前一栏的高度

你好。

能否请您提供前一栏的代码。

这可以在EA中使用,以限制在前一栏超过一定高度时下单。

请注意。

薛德士

 

Plz correct my code (basic EMA, STOC etc.)

嗨......我是新来的,对MQL4编码也很陌生......我已经根据具体条件构建了一些代码......如果有什么错误,希望你们能帮助我纠正。

好的...我们开始吧

1) EMA交叉

买入,如果。

- EMA 5 > EMA 18

- 两条线都是向上的

- EMA5的现价和前价之间的差异>=10点

目前我正在使用这个。

double EMA5 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, 0);

double EMA5_prev = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, 1);

double EMA18 = iMA(NULL, 0, 18, 0, MODE_EMA, PRICE_CLOSE, 0);

double EMA18_prev = iMA(NULL, 0, 18, 0, MODE_EMA, PRICE_CLOSE, 1);

if (EMA5 > EMA18) {

if ( EMA5 - EMA5_prev >= 10 && EMA18 > EMA_prev) {

Order = BUY;

}

}

[/CODE]

2) RSI

double RSI = iRSI(NULL, 0, 18, PRICE_CLOSE, Current + 0);

double RSI_prev = iRSI(NULL, 0, 18, PRICE_CLOSE, Current + 1);

if (RSI > 50 && RSI > RSI_prev) {

Order = BUY;

}

[/CODE]

3) STOCH

Buy when the Oscillator (either %K or %D) falls below a specific level (e.g., 20) and then rises above that level. Sell when the Oscillator rises above a specific level (e.g., 80) and then falls below that level

[code]

double STOCH_K = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, 0);

double STOCH_D = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 0);

if (STOCH_K < 20 || STOCH_D < 20) {

Order = BUY;

}

* i think i've skipped the red one.. dont know how to do that part..

Buy when the %K line rises above the %D line and sell when the %K line falls below the %D line

[code]

double STOCH_K = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, 0);

double STOCH_D = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 0);

if (STOCH_K > STOCH_D) {

Order BUY;

} else

if {STOCH_K < STOCH_D) {

Order SELL;

}

4) 在Stoc的编码中,MODE_MAIN表示什么?MODE_SIGNAL表示什么?

5) 如何为EA设置自动关闭和自动开启的定时器?

例如:设定早上8点开盘,下午5点收盘。

6) 当一个职位被打开时,如何在其他图表上设置禁用EA?

例如,在两个货币对(GU和EJ)上使用EA,当GU上的帖子被打开时,在EJ上禁用EA。

对不起,如果这个问题很基本,希望你们能教我。

 

棘手的止损--你能帮助解决这个问题吗?

我建立了一个驾驭趋势的EA。当利润达到一定水平时,我想将部分未平仓合约的止损移至该利润水平。我将让其余的手数保持不变(或将其余的手数的止损移至收支平衡)。

我没有使用止盈

我如何编写这个代码?

谢谢。

大贝

 
Big Be:
...当利润达到某个水平时,我想将部分未平仓合约的止损移至该利润水平。..

我应该如何编码?

谢谢。

大的是

你不能这样做,除非你有多个头寸:每个头寸可能只有一个SP/TP。但您可以关闭 部分头寸:只要在OrderClose(.)函数 中输入您想关闭的手数。

你也可以这样做(这取决于你的经纪人),为你想要的部分设置一个挂单止损(对冲):然后你必须做一个 "CloseBy "命令或函数。

 

#导入问题

大家好

我需要在MT4中调用这个API函数

int GetMouseMovePoints(

UINT cbSize // MOUSEMOVEPOINT结构的大小

LPMOUSEMOVEPOINT lppt, // 指向当前鼠标移动点的指针

LPMOUSEMOVEPOINT lpptBuf, // 存储点的缓冲区

int nBufPoints, // 缓冲区可以存储多少个点

DWORD resolution // 点的分辨率

);

请告诉我#import模块的内容。

谢谢

 
DooMGuarD:
大家好

我需要在MT4中调用这个API函数

int GetMouseMovePoints(

UINT cbSize // MOUSEMOVEPOINT结构的大小

LPMOUSEMOVEPOINT lppt, // 指向当前鼠标移动点的指针

LPMOUSEMOVEPOINT lpptBuf, // 存储点的缓冲区

int nBufPoints, // 缓冲区可以存储多少个点

DWORD resolution // 点的分辨率

);

请告诉我#import条款。

谢谢

把你的问题移到了这个主题。

 

每条街只做一次交易?

我知道这个问题以前已经说过了,但谁能告诉我一些代码,允许每条街只有一个交易?

谢谢。

 

米歇尔。

谢谢。

我就怕这个。

现在我必须学习 "神奇数字的乐趣 "了。

大贝

 

问题!!!

我如何编写这个代码?

如果之前的6次交易是亏损的,我试过这个,但它不会工作!!!

int MTL;

extern MaxTradeLoss=6;

int start()

{

for(int b=0;b<MaxTradeLoss;b++)

{

if(OrderSelect(b,SELECT_BY_POS,MODE_HISTORY)==true)

{

if(OrderSymbol()==Symbol() && OrderProfit()<0)

{

MTL++;

}

}

}

MTL=0;

return(0);

}

 
Dan7974:
我应该如何编码呢?

如果之前的6次交易都是亏损的,我试过这个,但它不会起作用!!。

int MTL;

extern MaxTradeLoss=6;

int start()

{

for(int b=0;b<MaxTradeLoss;b++)

{

if(OrderSelect(b,SELECT_BY_POS,MODE_HISTORY)==true)

{

if(OrderSymbol()==Symbol() && OrderProfit()<0)

{

MTL++;

}

}

}

MTL=0;

return(0);

}

你的语句MTL=0;几乎将MTL设置为零,而不管它在 "for "循环中计算了什么。这一行应该在 "for "循环之前而不是之后。