[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 1124

 

下午好。回到我的问题上来。反向交易不起作用。在网站上找了一圈,但没有找到任何关于这个主题的内容。你能建议我做错了什么吗(仍在学习语言)。要求在单一蜡烛上触发。

extern double TP = 70; //takrofit
extern double SL = 0; //stoploss
extern double Lot = 0.1;

double HighLevel;
double LowLevel;
int resBuy=0;
int resSell=0;


//+------------------------------------------------------------------+
//| expert initializationfunction|
//+
int init()
{
HighLevel=High[1];
LowLevel=Low[1);
return;
}

//+------------------------------------------------------------------+
//|专家函数 |
//+------------------------------------------------------------------+

void start()
{

if(Bars<100 && IsTradeAllowed()==false) return;


if(resBuy==0 && resSell==0 && CheckBreak() ==-)
{
resSell=OrderSend(Symbol(,OP_SELL,Lot,Bid,2,0,Bid -TP,"",MAGICMA,0,Red);
HighLevel=LowLevel;
LowLevel=Close[1];
return;
}

if(resBuy==0 && resSell==0 && CheckBreak()==1)
{
resBuy=OrderSend(Symbol(,OP_BUY,Lot,Ask,2,0,Ask + TP,",MAGICMA,0,Blue);
LowLevel=HighLevel;
HighLevel=Close[1];
return;
}

if(resBuy!=0 && resSell==0 && Close[1]<LowLevel) //------------------------------------- 对这部分感兴趣:在一个柱子上收盘和开盘
{
bool closeBuy=OrderClose(resBuy, Lot, Bid, 2, Blue);
// while(!IsTradeAllowed() )Sleep(100);
resSell=OrderSend(Symbol(),OP_SELL,Lot,Bid,2,0,Bid -TP,",MAGICMA,0,Red);
HighLevel=LowLevel;
LowLevel=Close[1];
return;
}

if(resSell!=0 && resBuy==0 && Close[1]>HighLevel) //------------------------------------- 对这部分感兴趣:在一个柱子上收盘和开盘
{
bool closeSell=OrderClose(resSell, Lot, Ask, 0.0002, Red);
// while(!IsTradeAllowed()Sleep(100);
resBuy=OrderSend(Symbol(),OP_BUY,Lot,Ask,2,0,Ask + TP,"",MAGICMA,0,Blue);
LowLevel=HighLevel;
HighLevel=Close[1];
return;
}

}

//----------------------------------------------------------------- Check Low&High break (Func)

double CheckBreak()
{
double candle=Open[1]-Close[1];

if(candle>0 && Low[1]<LowLevel) return(-1);
if(candle<0 && High[1]>HighLevel) return(1);
}


 
大家好,

数组有一个问题:

假设

int start (){ // 函数开始

int OrdSen_1=OrderSend(Symbol(), OP_BUY, 0.10, Ask,1, Ask-70*Point, Ask+70*Point); //买单
if(OrdSen_1==-1){ Alert("OrdSen_1 " , GetLastError(); }//

double mas1[]={}; // Array
}

问题是如何将属于OrdSen_1的值 "Symbol(), OP_BUY, 0.10, Ask,1, Ask-70*Point, Ask+70*Point "放入数组mas1[]={},以便进一步使用,从数组中取出,或者将这些值等同于变量,供其进一步使用。可能还有更多这样的命令,以及数组。 最主要的是要理解原理。

非常感谢您的帮助和解释,最好是详细的解释 :)
 
Techno:

外面将被删除,因为你没有使用它,即你没有从任何地方调用它,现在清楚了吗?

明白了,谢谢 :)
 
artmedia70:

你认为这个样本如何? :)))))

有了wifi,就可以了。
 

问候。编辑器如何跟踪代码中所有使用同一变量.函数的地方?

 
Galion:

问候。编辑器如何跟踪代码中所有使用同一变量.函数的地方?


我使用Notepad++来做这个。你所要做的就是把一个变量高亮一次,这样它就会在你的整个代码中高亮。

 
但是为了让Notepad++突出显示语法,你需要把它调整为MQL4语言。在这个论坛的搜索中输入Notepad++,你会发现一个已经配置好的编辑器的链接--我已经不止一次地把它贴在这里。
 
drknn:
但是为了让Notepad++突出显示语法,你需要把它调整为MQL4语言。在这个论坛的搜索中输入Notepad++,你会发现一个已经配置好的编辑器的链接--我已经不止一次地把它贴在这里。

谢谢你。安装好了,它亮起来了,更好玩了))
 
Galion:

谢谢你。安装好了,它亮起来了,更好玩了))

有一个非常有趣的功能来标记找到的变量。按Ctrl+F,输入变量名称,勾选 "书签 "和 "标记找到"。然后按 "查找所有 "按钮。要删除这个,请按 "删除所有 "按钮
 
drknn:

有一个非常有趣的功能用于标记找到的变量。按Ctrl+F,输入一个变量名称,勾选 "书签 "和 "标记已找到 "框。然后按 "查找所有 "按钮。要删除它,请点击 "全部删除"。

然后双击进入代码片段)))正是我所需要的,谢谢)
原因: