[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 388

 
KostelloArtua:
2011.05.16 09:06:08 Expert Moving Average New-Svecha EURUSD,M30: 正常にロードされました。
2011.05.16 09:04:21 Expert Moving Average New-Svecha EURUSD,M30: 正常にロードされました。
2011.05.16 08:14:25 '81415': データセンターの接続に失敗しました [6].


ターミナルを実行してからEAを実行すると、ログには何も表示されず、EAには動作が表示されるのですが...。


ティックが動いていて、EAのアイコンが「笑顔」であれば、EAは取引をするはず(=そのための条件が現れる)ですが、取引が行われない場合は、デバッグが必要です。

EAのコードの中で、特に比較される場所のprice() コマンドを整理して、具体的に何が比較されているのかを確認します。もしかしたら、変数が等しいと思い込んでいる間に、比較結果は常に偽になっているかもしれません。

 

皆さん、こんにちは。

MQL4を勉強して1ヶ月ほど経ちました。MACDバーの変化で売買する簡単なExpert Advisorを書きました(必要なら夕方にコードを送ります)。問題なくコンパイルでき、デモ口座の右上にスマイルマークが表示されています 環境設定でEAを取引できる ようにしました)。ストラテジーテスターでは、ストラテジーの結果が表示されます(ネガティブですが、これはさらなる洗練へのステップです)。しかし、MT4のデモ口座では、Expert Advisorは全く取引を開始しない。問題はプログラムではなく(そうでなければなぜテスターが結果を表示するのか)、どこかの設定にあるように思います。

それが何なのか、教えていただけますか?

 
Sersad:.

何が問題なのか、教えてください。


口座にいくら入っていて、何ロットで入力するのか?
 
Roger:

口座にいくら入っていて、何ロットで入力するのか?

10,000米ドルのデモ口座で、0.1ロット(ミニロット)でエントリーしています。

お金の管理ということであれば、それはないと思うのですが...。

 
Sersad:

皆さん、こんにちは。

MQL4を勉強して1ヶ月ほど経ちました。MACDバーの変化で売買する簡単なExpert Advisorを書きました(必要なら夕方にコードを送ります)。問題なくコンパイルでき、デモ口座の右上にスマイルマークが表示されています(環境設定でEAを取引できるようにしました)。ストラテジーテスターでは、ストラテジーの結果が表示されます(ネガティブですが、これはさらなる洗練へのステップとなります)。しかし、MT4のデモ口座では、Expert Advisorは全く取引を開始しない。問題はプログラムではなく(そうでなければなぜテスターが結果を表示するのか)、どこかの設定にあるように思います。

何が問題なのか、教えてください。


コードがないと何とも言えません。EAが4桁、デモ口座が5桁で書かれている可能性があります。ほら、例えば10ポイントのストップロスを設定して注文すると、5桁のEAに対して4桁の1pipと同じ距離になるんです。逆指値注文の最小許容距離を例えば3ポイントとすると、5桁の相場では3ポイントではなく30ポイントになります。5桁で10ポイントの逆指値注文を設定するコマンドを、サーバーは当然のことながら拒否します。

でも、その理由は違うかもしれません。ほら、「なぜ車が動かないのか」と人に聞いたことがあるでしょ。ボンネットを開けて、エンジンをかけようとしたときのクルマの反応を聞いてみないと、その理由はわからない......。

 


すみません、ここでくだらないことを書いてしまいましたが、どこが全く無知なのか、教えていただけませんでしょうか。

ポーズが全く開かない、何も起こらないようです。

ゼロによる除算を削除しました-それでも、ログにエラーは書き込まれません。

//+------------------------------------------------------------------+
//| for avalanche.mq4 |。
//| 著作権 © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright"著作権 © 2011, MetaQuotes Software Corp."
#プロパティリンク "http://www.metaquotes.net"
extern double stoploss=0; extern double takeprofit=20; extern int otstup=20; extern datetime expiration=0;

//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0)です。
}
//+------------------------------------------------------------------+
//| 専門家による初期化関数
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0)です。
}
//+------------------------------------------------------------------+
//| エキスパートスタート機能
//+------------------------------------------------------------------+
int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;double price=PRICE_OPEN;
// R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss;


int start()
{
//----

OrderSelect()tiket,SELECT_BY_TICKET, MODE_TRADES );
if(OrderSymbol()==Symbol()){。
if(OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 ){i=OrdersTotal() ;
if (i<2){
tiket= OrderSend( Symbol(), OP_BUYSTOP, volume*A, price+otstup*Point, Point*3, R1, PRICE_OPEN+takeprofit*Point+otstup, "OP_BUYSTOP", 1000, expiration, Red)を実行。
アラート("OP_BUYSTOP", GetLastError( );
tikett= OrderSend( Symbol(, OP_SELLSTOP, volume*A, price -otstup*Point, Point* 3,R2, PRICE_OPEN-takeprofit*Point-otstup, "OP_SELLSTOP", 2000, expiration,C'0,128,255' )です。)
アラート("OP_SELLSTOP", GetLastError( );
i=OrdersTotal() ; }. } }

//----
return(0)です。
}
//+------------------------------------------------------------------+

すなわち、2つの保留中の注文が開かれ、1つは価格の上で距離otstup=20、もう1つは下でストップなし、そして開く前に、このEAの注文がなく、2つ以上でないかをチェックします。

 
alexr7:
迅速な対応、ありがとうございました!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 基準は標準的なボリンジャーバンド指標で、パラメータは、期間20、シフト0、偏差2、Weighted Close(HLCC/4)です!!!!!!!

これらは、私が質問した基準ではありません。これがボリンジャーパラメーターです。異なる場合があり、設定で設定されている...

私はあなたに尋ねました - ポジションがボリンジャーミッドライン上に あるかどうかは、どのように判断するのですか?

 
alexr7:
迅速な対応ありがとうございました!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!基準は標準的なボリンジャーバンド指標で、パラメータは、期間20、シフト0、偏差2、Weighted Close(HLCC/4)です!!!!!!!

ボリンジャー平均線はiMA(NULL, 0,20, 0,MODE_SMA, PRICE_WEIGHTED, 1)です。
 
Dimka-novitsek:


すみません、ここでくだらないことを書いてしまいましたが、どこが完全に羊なのか、教えていただけませんでしょうか。ポーズが全く開かない、何も起こらないようです。

ゼロによる除算を削除しました - それでも、ログにエラーは書き込まれません。

//+--------------------------------------------------------+
//| for avalanche.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+--------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
extern double stoploss=0; extern double takeprofit=20; extern int otstup=20; extern datetime expiration=0;

//+----------------------------------------------------------------+
//|エキスパート初期化関数 |
//+----------------------------------------------------------------+
int init()
{
//----

//----
return(0;
} ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・!}
//+------------------------------------------------------------------------+
//| エキスパートの初期化関数 |
//+--------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}.
//+------------------------------------------------------------------------------+
//|エキスパートスタート機能|
//+------------------------------------------------------------------------------+
int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;double price=PRICE_OPEN;
// R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss) /stoploss.を指定します。


int start()
{
//----

OrderSelect( tiket,SELECT_BY_TICKET, MODE_TRADES );
if(OrderSymbol()==Symbol()){
if (OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 ){i=OrdersTotal() ;
if (i<2){
tiket= OrderSend(, OP_BUYSTOP, volume*A, price+otstup*Point, Point* 3, R1, PRICE_OPEN+takeprofit*Point+otstup, "OP_BUYSTOP", 1000, expiration, Red);
Alert ("OP_BUYSTOP", GetLastError( ));
tikett= OrderSend( Symbol(, OP_SELLSTOP, volume*A, price -otstup*Point, Point* 3,R2, PRICE_OPEN-takeprofit*Point-otstup, "OP_SELLSTOP", 2000, expiration,C'0,128,255' );
Alert ("OP_SELLSTOP", GetLastError( ));
i=OrdersTotal( ) ; } }; }.} }

//----
return(0);
}.
//+------------------------------------------------------------------+

私は、2つの保留中の注文のように開き、距離otstup = 20で価格の上に1つ、下の他の、ストップなし、そして開く前に、このEAの順序と2つ以上でないかどうかをチェックします。

1)SRCを使用する

2) 最初のコマンドはOrderSelect です。注文を決める前に誰を選ぶのか

 

EAが何も起動しないときは、新しいライダーがその後のティック ごとに開かないように、チェックするためだけです。

1)SRCのAを使用し、それはルートありがとうです

I.e.全く注文がない場合、または2つ以下の場合は、すぐに開きます!