[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 135

 

你好,我以S.Kovalev的教程中的脚本为基础。我想做一个专家顾问,开一笔交易,设置止损,获利,然后等待交易结束(即止损或获利),然后才重新开仓。我试着用循环和循环中断。请告知如何做到这一点。我想,不同时设置止损和止盈可能更容易,价格接近某个水平时就会平仓。 但我不想这样做,因为我害怕滑点,每个点对我都很重要。如果我试图同时打开一个或几个交易,我就无法打开新的交易。

//+------------------------------------------------------------------+
int start() //---- function start
{
double //---- declare variables
x,
y;
//+------------------------------------------------------------------+
OrderSend(Symbol(,OP_BUY,0.1,Ask,3,Ask-15*Point,Ask+15*Point); //----市场订单买入,并在开盘价的基础上设止损和盈利15点
//+------------------------------------------------------------------+
while(x!=Ask-15*Point||y!=Ask+15*Point)//---- 的条件,我希望交易在前一个交易结束之前被关闭,即:е.有可能
{//-----,只保留一笔交易
继续。//---- 中断该条件并进入下一步
}
//+------------------------------------------------------------------+
return;//---- function return
}
//+------------------------------------------------------------------+

 
YOUNGA:

是的,只有公开价格,这就是为什么在分析EA时要考虑它的原因。例如,如果一根蜡烛的尾巴打破了你的通道,专家顾问可能看不到它,但你可以改变程序逻辑,解决这个问题。



谢谢你!
 

问:这里有一段代码

int init()

{
//----
ShiftSignal=0;
SlowPer=FastPer+AddSlow;
Spread=MarketInfo(Symbol(),MODE_SPREAD);
Comment("ExpertMagicNumber=",ExpertMagicNumber);

if ( (FastShift<0)&&(SlowShift>=0)
ShiftSignal=FastShift;

if ((FastShift>=0)&&(SlowShift<0))
ShiftSignal=- SlowShift;

if ((FastShift<0)&&(SlowShift<0))
{
if (MathAbs(FastShift)>MathAbs(SlowShift)

ShiftSignal=-FastShift;
else
ShiftSignal=-SlowShift;
}
//----
return(0)

我对这个片断感兴趣

如果((FastShift<0)&&(SlowShift>=0))

ShiftSignal=FastShift。

如果FastShift<0,这意味着FastShift最初等于一个负的整数,例如:-2

然后在下一行ShiftSignal=FastShift。

人们会认为值-2会被分配 给ShiftSignal变量而不是0。

但同时你可能会想,为什么在FastShift变量前面会有减号?

因为在数学中,减去的是正数,即数值将是 "+2",也就是说,只是2。

如果你需要,我可以把所有的代码发给你。

 

帮助我解决这样的问题。

有一个买入或卖出的信号,但下一个条形图也满足条件,因为下一个条形图的信号不被考虑。

我怎么做,但它不工作。

if( условие на покупку или продажу)
{          

      if(OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES)==true)   // если есть уже ордер то проверяем
        {
                 if (OrderOpenTime()!=Time[1]||OrderOpenTime()!=Time[2]||OrderOpenTime()!=Time[3]) // если открытый ордер имеет значение(OrderOpenTime) не равное времени бару назад и тд. до 3 баров.
                    {
                   TimeBar=Time[0];
                   OrderSend(Symbol(),OP_BUY, LOT,NormalizeDouble(Ask,Digits),2,0,0,"ntcn",Magic,0,Blue);  // тогда открываем
                    }
        }


}

但它并不奏效......或者说,如何才能做到与众不同????。如果您能分享您的知识,我将不胜感激。

如果有人正在阅读并面临同样的问题,这里是答案。

if( условие на покупку или продажу)
{          

   OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES);                                                // проверяем последний ордер
        if(OrderOpenTime()<Time[3])                                                                       // если по времени прошло 3 бара тогда можно открывать новую сделку
           {
                   TimeBar=Time[0];
                   OrderSend(Symbol(),OP_SELL, LOT,NormalizeDouble(Bid,Digits),2,0,0,"ntcn",Magic,0,Red); 
           }

}
 
奥列格,条件不是很严格 例如,开始计算未平仓的订单,如果超过1个则不平仓(采取网站上的现成功能)。
 

既然没有人回答,我将尝试重新表述我的问题。

如果iCastom()函数只给出零,有没有办法从编译的指标中提取信息?

 

你好,请问如何在指标信号为正的情况下开始计算条数?

- 我得到了一个信号,打开海湾,只有在接下来的2个酒吧上升之后。

 
YOUNGA:
奥列格,条件不是很严格,例如,开始计算未平仓的订单,如果超过1个就不平仓(使用本网站的即用功能)


不幸的是,信号也可以重复(在买入更多的意义上,它们可以是一小时后,一天后,等等)我已经通过OrderComment,阻断,但也有重复的订单。我想对重复信号进行封锁。如果通过Sleepage,时间框架是不同的,4小时....

如果你不知道该怎么做,你会得到一个错误的答案。

 
dertop:


不幸的是,信号也可能是重复的(在额外买入的意义上,它们可能是一小时后,一天后,等等)我已经通过OrderComment,阻止,但也有重复的订单。我想对重复信号进行封锁。如果通过Sleepage,时间框架是不同的,4小时....

但感谢你的回答。


在网站上搜索该分支机构

禁止在一个酒吧进行交易。

 
晚安!请解释 "之 "字形指标的原理。例如,当左右两根柱子高于或低于当前柱子时,就会建立分形。人字形指标的基础是什么?请。