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
前一栏的高度
你好。
能否请您提供前一栏的代码。
这可以在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。当利润达到一定水平时,我想将部分未平仓合约的止损移至该利润水平。我将让其余的手数保持不变(或将其余的手数的止损移至收支平衡)。
我没有使用止盈。
我如何编写这个代码?
谢谢。
大贝
...当利润达到某个水平时,我想将部分未平仓合约的止损移至该利润水平。..
我应该如何编码?
谢谢。
大的是你不能这样做,除非你有多个头寸:每个头寸可能只有一个SP/TP。但您可以关闭 部分头寸:只要在OrderClose(.)函数 中输入您想关闭的手数。
你也可以这样做(这取决于你的经纪人),为你想要的部分设置一个挂单止损(对冲):然后你必须做一个 "CloseBy "命令或函数。
#导入问题
大家好
我需要在MT4中调用这个API函数
int GetMouseMovePoints(
UINT cbSize // MOUSEMOVEPOINT结构的大小
LPMOUSEMOVEPOINT lppt, // 指向当前鼠标移动点的指针
LPMOUSEMOVEPOINT lpptBuf, // 存储点的缓冲区
int nBufPoints, // 缓冲区可以存储多少个点
DWORD resolution // 点的分辨率
);
请告诉我#import模块的内容。
谢谢
大家好
我需要在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);
}
我应该如何编码呢?
如果之前的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 "循环之前而不是之后。