ロボットのこと、どうして動かないのか、誰が助けてくれるの? - ページ 2

 
Alexey Volchanskiy:

言語規則では、デフォルト値を持つパラメータを飲み込むことはできません。矢印の色を設定する場合は、色の左側にすべてのパラメータを記述してください。Bスリッページ3では足りない、5桁ならリクオートがある、50と書きました。そして、SLとTPは0に設定してはいけません。Aleksey Vakhrushevは すでにそれについて書いています。


エラーとなる。

OrderSendの戻り値を確認する必要がある
 
GIM:

エラーです。

OrderSendの戻り値を確認する必要がある
これはあくまで警告です。ファイルがコンパイルされます。
 

Good afternoon please help.EA only opens for sale.


extern double Lots=0.1;
extern int FastMAPeriod=14;
extern int FastMAMethod=0; // 0-SMA、1-EMA、2-SMMA、4-LWMA
extern int FastMAPrice=0; // 0-クローズ、1-オープン、2-ハイ、3-ロー、4-メディアン、5-タイピカル、6-ウェイトド
extern int SlowMAPeriod=42;
extern intn SlowMAMethod=0; // 0-SMA, 1-EMA, 2-SMMA, 4-LWMA
extern int SlowMAPrice=0; // 0-クローズ、1-オープン、2-ハイ、3-ロー、4-メジアン、5-タイピカル、6-ウエイト式
extern int TP=0; //takeprofit
extern int SL=0; //ストップロス

int BuyTicket,SellTicket;



int start(){

double fast_ma1=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,1);
double slow_ma1=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod,SlowMAPrice,1);
double fast_ma2=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,2);
double slow_ma2=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod,SlowMAPrice,2);


if(fast_ma1>slow_ma1 && !(fast_ma2>slow_ma2)){。
if(SellTicket!=0){ /True if SellTicket is not 0 ;

SellTicket=0。
}
if(BuyTicket==0){ //// BuyTicketが0であれば真。
BuyTicket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL=Ask-SL*Point,Ask+TP*Point,NULL,0,0,CLR_NONE)。
}
}
if(fast_ma1<slow_ma1 && !(fast_ma2<slow_ma2)){。
if(BuyTicket!=0){ //BuyTicket が 0 でない場合、true。
BuyTicket=0。
}
if(SellTicket==0){ /True if(SellTicket equals 0)
SellTicket=OrderSend(Symbol()、OP_SELL、Lots、Bid、3、Bid-SL*Point、Bid+TP*Point、NULL、0、0、CLR_NONE)とする。
}
}

return(0)です。
}

 
Alexey Kozitsyn:
これはあくまで警告です。ファイルがコンパイルされます。
まあそれでも契約は開けませんが......。
 
GIM:
まだ取引を開始しないのか...。
まあ、そういうわけでもないんでしょうけど...。ログブックに書いてあることを見てみる価値はあるかもしれませんが...。まあ、あくまで選択肢の一つですが。
 
Alexey Kozitsyn:
まあ、そういうわけにもいかず......。雑誌に書いてあるのは一見の価値ありかもしれないけれど...。まあ、それも選択肢のひとつではあるのですが。
ありがとうございます!(笑)。これからも頑張ります))
 
AdikAmir:

こんにちは、助けてください。 アドバイザーは売るためだけに開くのです。


extern double Lots=0.1;
extern intMAPeriod=14;
extern int FastMAMethod=0; // 0-SMA、1-EMA、2-SMMA、4-LWMA
extern int FastMAPrice=0; // 0-クローズ、1-オープン、2-ハイ、3-ロー、4-メディアン、5-タイピカル、6-ウェイト付き
extern int SlowMAPeriod=42;
extern intn SlowMAMethod=0; // 0-SMA, 1-EMA, 2-SMMA, 4-LWMA
extern int SlowMAPrice=0; // 0-クローズ、1-オープン、2-ハイ、3-ロー、4-メジアン、5-タイピカル、6-ウエイト式
extern int TP=0; //takeprofit
extern int SL=0; //ストップロス

int BuyTicket,SellTicket;



int start(){

double fast_ma1=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,1);
double slow_ma1=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod,SlowMAPrice,1);
double fast_ma2=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,2);
double slow_ma2=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod,SlowMAPrice,2);


if(fast_ma1>slow_ma1 && !(fast_ma2>slow_ma2)){。
if(SellTicket!=0){ /True if SellTicket is not 0 ;

SellTicket=0。
}
if(BuyTicket==0){ //// BuyTicketが0であれば真。
BuyTicket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL=Ask-SL*Point,Ask+TP*Point,NULL,0,0,CLR_NONE)。
}
}
if(fast_ma1<slow_ma1 && !(fast_ma2<slow_ma2)){。
if(BuyTicket!=0){ //BuyTicket が 0 でない場合、true。
BuyTicket=0。
}
if(SellTicket==0){ /True if(SellTicket equals 0)
SellTicket=OrderSend(Symbol()、OP_SELL、Lots、Bid、3、Bid-SL*Point、Bid+TP*Point、NULL、0、0、CLR_NONE)を実行。
}
}

return(0)です。
}

今まで見たことのない不思議なコードです。

変数BuyTicketとSellTicketは初期化されていないため、新しいティックが到着するたびにゼロに等しいか、理解不能な状態になります。

if(fast_ma1>slow_ma1 && !(fast_ma2>slow_ma2)) という構成は、人間の言語に翻訳すると、この条件は次のようになり、全く明確ではありません。

fast_ma1 が slow_ma1 よりも大きく、かつ NOT fast_ma2 が slow_ma2 よりも大きければ、fast_ma1 は slow_ma1 よりも大きくなる。演算子「!」は、次のように否定を意味します。

fast_ma1>slow_ma1 = true (真), fast_ma2>slow_ma2 = false (偽) のときに条件が成立します。

....
if (OrdersTotal()==0)
{
  if (условие на покупку)
  {
    ticet = OrderSend(Symbol(),OP_BUY,.....);
    if (ticet==0) Print("ERROR");
  }
  if (условие на продажу)
  {
    ticet = OrderSend(Symbol(),OP_SELL,.....);    
    if (ticet==0) Print("ERROR");
  }

}
//Простейший код для примера.
 
Vitalii Ananev:

これは今まで見たことのない不思議なコードです。

BuyTicketとSellTicket変数は、初期化されていないため、新しいティックが到着するたびにゼロに等しいか、理解不能な状態になります。

if(fast_ma1>slow_ma1 && !(fast_ma2>slow_ma2)) という構成は、人間の言語に翻訳すると、この条件は次のようになり、全く明確ではありません。

fast_ma1 が slow_ma1 よりも大きく、かつ NOT fast_ma2 が slow_ma2 よりも大きければ、fast_ma1 は slow_ma1 よりも大きくなる。演算子「!」は、次のように否定を意味します。

fast_ma1>slow_ma1 = true (真), fast_ma2>slow_ma2 = false (偽) のときに条件が成立します。

あなたのコードを入れても、売りポジションは開かれず、買いのみです。
 
AdikAmir:
あなたのコードを入れても、売りポジションは開かず、買いポジションだけです。

extern double Lots=0.1;
extern intnal double FastMAPeriod=5;
extern int FastMAMethod=0; // 0-SMA、1-EMA、2-SMMA、4-LWMA
extern int FastMAPrice=0; // 0-クローズ、1-オープン、2-ハイ、3-ロー、4-メジアン、5-タイピカル、6-ウエイト
extern int SlowMAPeriod=75;
extern intn SlowMAMethod=3; // 0-SMA, 1-EMA, 2-SMMA, 4-LWMA
extern int SlowMAPrice=3; // 0-Close、1-Open、2-High、3-Low、4-Median、5-Typical、6-Weighted
extern int TP=500; //takeprofit
extern int SL=250; //ストップ・ロス
ダブルチケ

int start(){

double fast_ma1=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,1);
double slow_ma1=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod,SlowMAPrice,1);
double fast_ma2=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,2);
double slow_ma2=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod,SlowMAPrice,2);

if (注文合計()==0)
{
if (fast_ma1>slow_ma1 && (fast_ma2<slow_ma2))
{ ticet = OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-SL*Point,Ask+TP*Point,NULL,0,0,CLR_NONE)。
if (ticet==0) Print("ERROR");
}
if (slow_ma1>fast_ma1 && (slow_ma2<fast_ma2))
{
ticet = OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid-SL*Point,Bid+TP*Point,NULL,0,0,CLR_NONE)。
if (ticet==0) Print("ERROR");
}

}

return(0)です。
}




 
SL /TPを計算する際に符号を変更する必要があります。
ticet = OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point,Bid-TP*Point,NULL,0,0,CLR_NONE)。