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

 
你能告诉我应该写哪些代码,以便当交易关闭时,下一个交易只能在下一个交易栏打开?
 
请告诉我,如何使价格图上的蜡烛图在Awesome Oscillator 和Acceleration/Deceleration Oscillator为绿色时染成绿色,在Awesome Oscillator和Acceleration/Deceleration Oscillator为红色时染成红色,而当指标为不同颜色时,蜡烛图应该是灰色?
 
gmMarat писал(а)>>
你能告诉我应该写哪段代码来关闭一个交易,以便下一个交易只能在下一个交易栏打开吗?

因此,问题是:你如何完成交易?它是一个停止(这更复杂),还是我们自己关闭它?如果我们自己关闭它,那就容易多了。

 
Nosferatu писал(а)>>
请告诉我如何使价格图上的蜡烛图在真棒振荡器 和加速/减速振荡器为绿色时染成绿色,在真棒振荡器和加速/减速振荡器为红色时染成红色,而当指标为不同颜色时,使蜡烛图为灰色?

我从来没有画过烛台,但我肯定在底座上看到过这种火鸡。真的,大约四个月前。查一查吧。

 
infinum13 >> :

因此,问题是:你如何完成交易?它是一个停止(这更复杂),还是我们自己关闭它?如果我们自己关闭它,那就容易多了。

交易在获利或止损时关闭!

 

问题。

我有一个指标,为工具写了一个报价,像这样--2321.50000000


怎样才能消除多余的零?

 

关于写作专家在这里非常好。http://www.vedikhin.ru/2006/06/expert-advisors-overview.html

愿外汇之神原谅我,这是用Wordov的格式。

附加的文件:
 

也帮助我。

编译器的局限性。我想知道对数组的限制(有多少个数组或元素总数或其他类似分配的内存),以及在超级全局变量意义上的全局变量 的数量。

 

大家好。

我决定写一个专家。为它拿了一个Stoch。我认为它应该只有一个订单,但它会在80以上卖出,在50以下收盘。我还添加了StopLoss,以减少损失。我已经测试过了。专家似乎在工作,但有时会接二连三地采取StopLosses。因此,我决定在第一次亏损 后改变交易条件,使其与最初的交易条件有明显不同。为此,我引入了我从Kima那里得到的isCloseLastPosByStop函数,并喜欢它。 如果Loss 起作用了,它就会发出信号并写在日志中;在信号 if(SSL==true)后,我设置新的出售条件。我已经编写了它,编译了它,启动了它--它可以工作,但也需要在某些地方连续使用几个 LossO才能使它停止。由于我对MQL4 的经验不多,我不知道哪里出了问题。请以任何方式帮助我.....,我们不是本地人......,也许有人会告诉我如何以其他方式实现这个想法。提前感谢,这是个好地方,我从来没有在没有合格建议的情况下走过....


#财产版权"Alex"

#属性链接 "http://www.сайта.net"
//---- 输入参数
外部int int MagicNamber=88881。
外置 int K_per=30;
外置 int D_per=8;
外来的int Slow=10。
外来的双倍Lots=1.0。
外置双倍止损=300。
外来的双倍SSL=0。

//+------------------------------------------------------------------+

int start()
{
䵮䵮
cnt=0。
票。
总计。

StochK_0, // K线值
StochD_1, // D线的数值
SL=StopLoss。
isCloseLastPosByStop()。
如果(Bars<100)
{
Print("小于100的条形图")。
return(0);
}
StochK_0=iStochastic(NULL, 0, K_per,D_per,Slow,MODE_SMA,0,MODE_MAIN, 0); // K
StochD_1=iStochastic(NULL, 0, K_per,D_per,Slow,MODE_SMA,0,MODE_MAIN, 2); /D
total=OrdersTotal()。
如果(total<1)
如果((StochK_0>StochD_1)&&StochD_1>80) //销售条件
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green);
如果(ticket>0)
{
如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("卖出订单开仓:",OrderOpenPrice())
}
else Print("错误打开卖出订单:",GetLastError())。
return(0);
}
for(cnt=0;cnt<total;cnt++)
{
RefreshRates()。
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)。
if(OrderType()<=OP_SELL && //这是一个未平仓的头寸?OP_BUY或OP_SELL
OrderSymbol()==Symbol()) //工具匹配?
{
如果(OrderType()==OP_SELL)//仓位已打开
SSL=isCloseLastPosByStop();
if(SSL==true)

{
Print("StopLoss");
}
total=OrdersTotal()。
如果(total<1)
如果((StochK_0<StochD_1)&&StochK_0 < 50) // 如果StopLoss被触发的销售条件
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green);
如果(ticket>0)
{
如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("卖出订单开仓:",OrderOpenPrice())
}
else Print("错误打开卖出订单:",GetLastError())。
return(0);
}
for(cnt=0;cnt<total;cnt++)
{
RefreshRates()。
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)。
if(OrderType()<=OP_SELL && //这是一个未平仓的头寸?OP_BUY或OP_SELL
OrderSymbol()==Symbol()) //工具匹配?
{
如果(OrderType()==OP_SELL)//仓位已打开
{
如果(StochK_0>StochD_1 &&StochD_1 < 50) // 关闭条件
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // 关闭位置
return(0); // 退出
}}}}}}}
//___用户fu-ya
bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {
datetime t;
双重OCP,OSL。
int dg, i, j=-1, k=OrdersHistoryTotal()。

如果(sy=="0")sy=符号()。
for (i=0; i<k; i++) {
如果(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){
如果(OrderSymbol()==sy || sy=="){
如果(OrderType()==OP_BUY || OrderType()==OP_SELL) {
如果(op<0 || OrderType()==op){
如果(mn<0 || OrderMagicNumber()==mn) {
如果(t<OrderCloseTime()){
t=OrderCloseTime()。
j=i。
}}}}}}}
如果(OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)){
dg=MarketInfo(sy, MODE_DIGITS)。
如果(dg=0)如果(StringFind(OrderSymbol(), "JPY")<0) dg=4; 否则dg=2。
ocp=NormalizeDouble(OrderClosePrice(), dg)。
osl=NormalizeDouble(OrderStopLoss(), dg)。
如果(ocp==osl)返回(True)。
}
return(False)。
}
 
luka писал(а)>>

问题。

我有一个指标,为工具写了一个报价,像这样--2321.50000000

如何去掉多余的零?

DoubleToStr()操作符将帮助你。

原因: