どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 371

削除済み  
SpikeOne:


初期データで注文間のステップがintになっているところにバグを発見したようで、1.7と入れてしまったので、doubleに変更したらうまくいきました=)


まあこんにちは)))間違いを見つけたとき、すべてが思ったより簡単だったことに気づく)))です。
 
Ekburg:

その場合、私は役に立ちません)アドバイザーをすべて通す必要があります。

すべてダブルに変更しました、今はうまくいっています、残りのポイントをテストする必要があります =)EAでしっかり儲けさせたら、必要なら投稿します =)

なぜうまく動かないのかがわからないので、何が問題だったのか忘れてしまいそうですが、そうならなくてよかったです!)

削除済み  
SpikeOne:

すべてダブルに変更しました、今はうまくいっています、残りのポイントをテストする必要があります =)EAでしっかり儲けさせたら、必要なら投稿します =)

そうでなければ忘れたかったのに、なぜか思うようにいかなかった =) 忘れないでよかったです。)


できる、なぜできない)

You're welcome)です。

道は歩く、私も、最初はそんな瞬間があり、頭が痛くなりましたが、問題が解決すると、満足感のようなものがあり、その感覚はプライスレスです))

 
信号2を待つ間に信号1が繰り返し発生し、信号2が到着するまでは、信号1を受信してからの時間を記録し、変更しないようにしなければならない。
削除済み  
Forexman77:
信号2を待つ間に信号1が繰り返し発生し、信号2が到着するまでは、信号1を受信してからの時間を記録し、変更しないようにしなければならない。

int sm;
datetime data;
if(sm==0) if(сигнал1==true) data=TimeLocal(); sm=1;
if(sm==1) if(сигнал2==true) data=TimeLocal();
 
extern bool test=false;  // откл объектов при тесте
extern int prof=4;     // уровень профита
extern int chag=3;     // шаг между ордерами
extern int risk=0;         //уровень риска
extern double lot = 0.01; // начальный лот
extern double k_lot=2; // увеличение объема
extern double lot_max=100; // максимальный лот
//=====================================================//
int kn=20;  // величина вертикальной шкалы
int magic = 37649; 
extern double  BeginHour =3;
bool result;
bool fail=false; 
double gg=0;
int k,c,b_ind,s_ind,objtot,er;
double buy_prs,sel_prs,buy_ind,sel_ind,or_bu,or_sl,prf_b,prf_s,b_pr,s_pr,b2_cls,s2_cls;
string nh;
//нннннннннннннннннннннннннннн//
int init()
  {
//----
 
if(Digits==2) k=1;
if(Digits==3) k=10;
if(Digits==4) k=1;
if(Digits==5) k=10;
nh=StringSubstr(Symbol(),2,2);
 
 if(!IsTesting()){
    buy_prs=GlobalVariableGet(nh+"_buy_prs"); buy_ind=GlobalVariableGet(nh+"_buy_ind");
    sel_prs=GlobalVariableGet(nh+"_sel_prs"); sel_ind=GlobalVariableGet(nh+"_sel_ind");}
 
c=0;
chag=chag*k;
prof=prof*k;
//нннннннннннннннннннннннннннн//
   return(0);
  }
//============================================//
int start()
  {
//----
int i,y,tick_s,tick_b,tick_slm,tick_blm;
double prov,price_b,price_s,prof_b,prof_s,lot_b,lot_s,b_cls,s_cls,abc;
bool mod_b=false,mod_s=false;
 
//=================//
   if(Bars-c>1) c=0;
   i=Bars-c; c=Bars;
//==================================//   
 if(!IsTesting()){for(y=0;y<OrdersTotal();y++)
   {OrderSelect(y,0,0); if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=magic||(OrderType()!=0&&OrderType()!=1)) continue;
      prov=prov+OrderProfit()+OrderSwap()+OrderCommission();}
   if(prov<0&&prov<GlobalVariableGet(nh+"_max_prov"))GlobalVariableSet(nh+"_max_prov",prov);}
 
//=================================================//
    for (y=0;y<OrdersTotal();y++){OrderSelect(y,0);
      if(Symbol()!=OrderSymbol()||OrderMagicNumber()!=magic) continue; 
      if (OrderType() == 0 || OrderType() == 1) abc=abc + OrderProfit() + OrderSwap() + OrderCommission();
     
      if(OrderType()==0){if(prf_b!=OrderTakeProfit() && prf_b!=0) mod_b=true; prf_b=OrderTakeProfit();}
      if(OrderType()==OP_BUY && tick_b<OrderTicket()) {
       tick_b=OrderTicket();
       price_b=OrderOpenPrice();
       lot_b=OrderLots();
       prof_b=OrderTakeProfit();}
 
      if(OrderType()==1){if(prf_s!=OrderTakeProfit() && prf_s!=0) mod_s=true; prf_s=OrderTakeProfit();}      
      if(OrderType()==OP_SELL && tick_s<OrderTicket()) {
       tick_s=OrderTicket();
       price_s=OrderOpenPrice();
       lot_s=OrderLots();
       prof_s=OrderTakeProfit();} 
 
      if (OrderType()==OP_BUYLIMIT)  tick_blm = OrderTicket();
      if (OrderType()==OP_SELLLIMIT) tick_slm = OrderTicket();}
//=====================================================//
   if(Ask>buy_prs && or_bu<=0) {buy_prs=Ask; buy_ind=Ask;}
   if((Ask<buy_prs && Ask<buy_ind) || buy_ind==0) buy_ind=Ask;
   b_cls=buy_ind+MathFloor(prof+chag/2)*Point;
   or_bu=MathFloor((buy_prs-buy_ind)/Point/chag); 
   if(Bid>=b_cls && or_bu>0){buy_prs=Ask; buy_ind=Ask; or_bu=0;}
   if(tick_b==0 && b_ind>0){buy_prs=Ask; buy_ind=Ask; or_bu=0;}
 
   if((Bid<sel_prs||sel_prs==0) && or_sl<=0) {sel_prs=Bid; sel_ind=Bid;}
   if(Bid>sel_prs && Bid>sel_ind) sel_ind=Bid;
   s_cls=sel_ind-MathFloor(prof+chag/2)*Point;
   or_sl=MathFloor((sel_ind-sel_prs)/Point/chag);
   if(Ask<=s_cls && or_sl>0){sel_prs=Bid; sel_ind=Bid; or_sl=0;}
   if(tick_s==0 && s_ind>0) {sel_prs=Bid; sel_ind=Bid; or_sl=0;}
 
 if(!IsTesting()){
   GlobalVariableSet(nh+"_buy_prs",buy_prs); GlobalVariableSet(nh+"_buy_ind",buy_ind);
   GlobalVariableSet(nh+"_sel_prs",sel_prs); GlobalVariableSet(nh+"_sel_ind",sel_ind);} 
//===============================
   if(tick_b==0 && tick_blm!=0) OrderDelete(tick_blm);
   if(tick_s==0 && tick_slm!=0) OrderDelete(tick_slm);
   if (AccountBalance()>gg)
   {
    gg= AccountBalance();
   }
   if(Hour() >= BeginHour )
{
if ( AccountEquity()>=gg)
   {
 //if(AccountEquity()>=740)
  // {
 
   for(int zx=OrdersTotal(); zx+1>=0; zx--)
      {
      if(OrderSelect(zx,SELECT_BY_POS,MODE_TRADES)==true)
      OrderDelete(OrderTicket());
      }
   while (OrdersTotal()>0)
      {
      if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
         {
         if(OrderType()==OP_BUY) result=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),MarketInfo(OrderSymbol(),MODE_DIGITS)),3,CLR_NONE);
         if(OrderType()==OP_SELL) result=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),MarketInfo(OrderSymbol(),MODE_DIGITS)),3,CLR_NONE);
         if (OrderType()==OP_BUYLIMIT || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_SELLSTOP)
         OrderDelete(OrderTicket());
         if(result!=TRUE)
            {
            er=GetLastError();
            Print("LastError = ",er, " ",Symbol());
            }
         else er=0;
         }
      else Print( "Error when order select ", GetLastError());
      }
   if(OrdersTotal()==0) fail=true;
   }
}
if(fail==true) return(0);
 
   if(or_bu==risk && tick_b==0) open(0);
   if(or_sl==risk && tick_s==0) open(1);

ここに一般的なコードがあり、それは私が以下に与えた場所までの先頭と全体の部分に挿入され、ここにあなたが先頭を挿入する必要があるExpert Advisor自体ですhttps://www.mql5.com/ru/code

夜00:00くらいからスタートして、一定時間までトレードして、それ以降はトレードとEAを終了させる。

if(or_bu==risk && tick_b==0) open(0);
if(or_sl==risk && tick_s==0) open(1);
 
Ekburg:


もう少し複雑にする必要があります。ある変数が信号1に依存しているので、信号2がない限り、信号1で使われているデータが更新され、変数が変化するのですが、変数が一度変化すればいいのです。信号2の後にのみ、変数の後続の変更。 つまり、スイッチ1がトリガーされると1をトリガーし、スイッチ2がトリガーされるまでは何も変化しない。 しかし、スイッチ1はあるデータを使ってスイッチを入れるので、再度処理することになり、1回で済みます。

削除済み  
SpikeOne:

ここに一般的なコードがあり、それは私が以下に与えた場所までの先頭と全体の部分に挿入され、ここにあなたが先頭を挿入する必要があるExpert Advisor自体ですhttps://www.mql5.com/ru/code

夜00:00くらいからスタートして、一定時間までトレードして、それ以降はトレードとEAを終了させる。


それで!うまくいくのでしょうか(笑)。
削除済み  
Forexman77:

もう少し複雑にする必要があります。ある変数が信号1に依存しているので、信号2がない限り、信号1で使われているデータが更新され、変数が変化するのですが、変数が一度変化すればいいのです。信号2の後にのみ、変数の後続の変更。 つまり、スイッチ1がトリガーされると1をトリガーし、スイッチ2がトリガーされるまでは何も変化しない。 しかし、スイッチ1はあるデータを使ってスイッチを入れるので、再度処理することになり、1回で済みます。


基本は教えたから、自分でやってみろ!どうしてそんなに怠け者なんだ...あなたがそう表現したように、だから私は、ありがとうとも言わずに書いたのです;)
 
Ekburg:

基本は教えたから、自分でやってみろ!なんでそんなにダラダラしてるんだ...説明通りに書いたのに、ありがとうの一言もないじゃないか;)
ありがとうございます。正直なところ、私は基本的なことは知っています)