[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 366 1...359360361362363364365366367368369370371372373...537 新しいコメント 削除済み 2011.05.02 20:37 #3651 abolk: ある でないと 任意のOEMインジケーターのコードを取り出して、コードがどのようにフォーマットされているかを確認します。 例えば、標準的な規律である。ただ、複雑であることがそうさせている。しかし、ブラケットそのもの以外に、例えば「;」の問題であるかもしれない...。 //+------------------------------------------------------------------+ //| Discipline | //| Copyright © 1999-2008, MetaQuotes Software Corp. | //| FX_FISH | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, Kiko Segui" #property link "webtecnic@terra.es" //---- #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 Lime #property indicator_color2 Red //---- double buffer1[]; double buffer2[]; //---- extern int period=10; extern int price=0; // 0 or other = (H+L)/2 // 1 = Open // 2 = Close // 3 = High // 4 = Low // 5 = (H+L+C)/3 // 6 = (O+C+H+L)/4 // 7 = (O+C)/2 extern bool Mode_Fast=false; extern bool Signals =true; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2,Lime); SetIndexBuffer(0,buffer1); SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2,Red); SetIndexBuffer(1,buffer2); return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int deinit() { int i; double tmp; //---- for(i=0;i<Bars;i++) { ObjectDelete("Sel"+DoubleToStr(i,0)); ObjectDelete("Buy"+DoubleToStr(i,0)); ObjectDelete("Exit"+DoubleToStr(i,0)); } return(0); } double Value=0,Value1=0,Value2=0,Fish=0,Fish1=0,Fish2=0; int buy=0,sell=0; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { int i; int barras; double _price; double tmp; double MinL=0; double MaxH=0; double Threshold=1.2; //---- barras=Bars; if(Mode_Fast) barras=100; i=barras-period-1; while(i>=0) { MaxH=High[Highest(NULL,0,MODE_HIGH,period,i)]; MinL= Low[ Lowest(NULL,0,MODE_LOW, period,i)]; switch(price) { case 0: _price=(High[i]+Low[i])/2; break; case 1: _price= Open[i]; break; case 2: _price= Close[i]; break; case 3: _price= High[i]; break; case 4: _price= Low[i]; break; case 5: _price=(High[i]+Low[i]+Close[i])/3; break; case 6: _price=(Open[i]+High[i]+Low[i]+Close[i])/4; break; case 7: _price=(Open[i]+Close[i])/2; break; default: _price=(High[i]+Low[i])/2; break; } Value=0.33*2*((_price-MinL)/(MaxH-MinL)-0.5) + 0.67*Value1; Value=MathMin(MathMax(Value,-0.999),0.999); Fish =0.5*MathLog((1+Value)/(1-Value))+0.5*Fish1; buffer1[i]=0; buffer2[i]=0; //---- if((Fish<0) && (Fish1>0)) { if(Signals) { ObjectCreate("Exit"+DoubleToStr(i,0),OBJ_ARROW,0,Time[i],_price); ObjectSet("Exit"+DoubleToStr(i,0),OBJPROP_ARROWCODE,251); ObjectSet("Exit"+DoubleToStr(i,0),OBJPROP_COLOR,Red); } buy=0; } if((Fish>0) && (Fish1<0)) { if(Signals) { ObjectCreate("Exit"+DoubleToStr(i,0),OBJ_ARROW,0,Time[i],_price); ObjectSet("Exit"+DoubleToStr(i,0),OBJPROP_ARROWCODE,251); ObjectSet("Exit"+DoubleToStr(i,0),OBJPROP_COLOR,Red); } sell=0; } if(Fish>=0) { buffer1[i]=Fish; } else { buffer2[i]=Fish; } tmp=i; if((Fish<-Threshold) && (Fish>Fish1) && (Fish1<=Fish2)) { if (Signals) { ObjectCreate("Sel"+DoubleToStr(i,0),OBJ_ARROW,0,Time[i],High[i]+5*Point); ObjectSet("Sel"+DoubleToStr(i,0),OBJPROP_ARROWCODE,226); ObjectSet("Sel"+DoubleToStr(i,0),OBJPROP_COLOR,Red); } sell=1; } if((Fish>Threshold) && (Fish<Fish1) && (Fish1>=Fish2)) { if (Signals) { ObjectCreate("Buy"+DoubleToStr(i,0),OBJ_ARROW,0,Time[i],Low[i]-5*Point); ObjectSet("Buy"+DoubleToStr(i,0),OBJPROP_ARROWCODE,225); ObjectSet("Buy"+DoubleToStr(i,0),OBJPROP_COLOR,Aqua); } buy=1; } Value1=Value; Fish2=Fish1; Fish1=Fish; i--; } return(0); } //+------------------------------------------------------------------+ 削除済み 2011.05.02 20:44 #3652 KONDOR: 括弧にもっと注意を払え )))) シンボル() 例えばこういうことでしょうか? if(OrderSymbol()==Symbol())とする。 を修正しましたが、エラーは残ったままです。 削除済み 2011.05.02 20:56 #3653 は、もしや、それとも何? じゃあ、やり直そうかな...。 は次のようになります。 if(OrderSymbol()==Symbol() ? は、すべてのシンボルが定義されています。 を削除しても、何も変わりません。 削除済み 2011.05.02 21:08 #3654 KONDOR: 大括弧不要 すべて同じ =( Andrey F. Zelinsky 2011.05.02 21:12 #3655 frxmax: ブラケットという意味では、すべてがまっすぐに見えるのですが、どこが間違いなのでしょうか? //+------------------------------------------------------------------+ //| Beta2.mq4 | //| | //| | //+------------------------------------------------------------------+ extern int StopLoss=100; extern int TakeProfit=20; extern double Lot=0.01; extern int cnt, ticket, total; //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { double LoCurent=iCustom(NULL, 0, "LO",0,0); double LoPrevious=iCustom(NULL, 0, "LO",1,1); double FtCurent=iCustom(NULL, 0, "FT",0,0); double FtPrevious=iCustom(NULL, 0, "FT",1,1); //---- if (total==0) { if (LoCurent>LoPrevious && FtCurent>FtPrevious) { ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Bid-StopLoss*Point,Bid+TakeProfit*Point,"Buy",1111,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice()); }else Print("Error opening BUY order : ",GetLastError()); return(0); }else if(LoCurent<LoPrevious && FtCurent<FtPrevious) { ticket=OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Ask+StopLoss*Point,Ask-TakeProfit*Point,"Sell",2222,0,Red); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice()); }else Print("Error opening SELL order : ",GetLastError()); return(0); } return(0); } else if(LoCurent<LoPrevious || FtCurent<FtPrevious || LoCurent<-30 || LoPrevious<-30) { if(OrderSelect(ticket,SELECT_BY_POS,MODE_TRADES)==false) //break; { if(OrderSymbol()==Symbol()) { if(OrderType()==OP_SELL) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position } return(0); } } } else if (LoCurent>LoPrevious || FtCurent>FtPrevious || LoCurent>30 || LoPrevious>30) { if(OrderSelect(ticket,SELECT_BY_POS,MODE_TRADES)==false) //break; { if(OrderSymbol()==Symbol()) { if(OrderType()==OP_SELL) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position } return(0); } } } //} return(0); } //+------------------------------------------------------------------+ KONDOR 2011.05.02 21:13 #3656 frxmax: をエラーなく表示します。 else if(LoCurent<LoPrevious || FtCurent<FtPrevious || LoCurent<-30 || LoPrevious<-30) { if(OrderSelect(ticket,SELECT_BY_POS,MODE_TRADES)) //break ругается { if(OrderSymbol()==Symbol()) { if(OrderType()==OP_SELL) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position } return(0); } } } else if (LoCurent>LoPrevious || FtCurent>FtPrevious || LoCurent>30 || LoPrevious>30) { if(OrderSelect(ticket,SELECT_BY_POS,MODE_TRADES)) //break ругается { if(OrderSymbol()==Symbol()) { if(OrderType()==OP_SELL) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position } return(0); } } } return(0); } 削除済み 2011.05.02 21:16 #3657 どうもありがとうございました。KONDOR 削除済み 2011.05.02 21:24 #3658 ただ、問題は、その結果があまり良くないことです。 私はそれが唯一の注文は、以前に受信した信号の方向に開かれたようにする方法を理解するのに役立ちます。 削除済み 2011.05.02 21:34 #3659 NumberOfBarOpenLastPos()関数をチェックすると、注文がオープンされたバー番号がチェックされます。 削除済み 2011.05.02 21:44 #3660 むしろ、こうであってほしい。(例えば、ユーロドルのチャートで、買いシグナルがある) if total>1 通貨ペア=ユーロドルの場合 注文が売りであれば 注文を閉じる 買い注文を出す 一般的なビューは次のようになります。 若しかしたら if total==0 買う それ以外(合計>1) どの通貨ペアで取引を開始したかを確認する もし私たちの 売っていれば を閉じて、購入に戻る または(total = 0, open a buy)・・・・・・。 1...359360361362363364365366367368369370371372373...537 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ある
でないと
任意のOEMインジケーターのコードを取り出して、コードがどのようにフォーマットされているかを確認します。
例えば、標準的な規律である。ただ、複雑であることがそうさせている。しかし、ブラケットそのもの以外に、例えば「;」の問題であるかもしれない...。
括弧にもっと注意を払え ))))
シンボル()
例えばこういうことでしょうか?
if(OrderSymbol()==Symbol())とする。
を修正しましたが、エラーは残ったままです。
は、もしや、それとも何?
じゃあ、やり直そうかな...。
は次のようになります。 if(OrderSymbol()==Symbol() ?
は、すべてのシンボルが定義されています。
を削除しても、何も変わりません。
大括弧不要
ブラケットという意味では、すべてがまっすぐに見えるのですが、どこが間違いなのでしょうか?
をエラーなく表示します。
ただ、問題は、その結果があまり良くないことです。
私はそれが唯一の注文は、以前に受信した信号の方向に開かれたようにする方法を理解するのに役立ちます。
むしろ、こうであってほしい。(例えば、ユーロドルのチャートで、買いシグナルがある)
if total>1
通貨ペア=ユーロドルの場合
注文が売りであれば
注文を閉じる
買い注文を出す
一般的なビューは次のようになります。
若しかしたら
if total==0
買う
それ以外(合計>1)
どの通貨ペアで取引を開始したかを確認する
もし私たちの
売っていれば
を閉じて、購入に戻る
または(total = 0, open a buy)・・・・・・。