コーディングの方法は? - ページ 167 1...160161162163164165166167168169170171172173174...347 新しいコメント 削除済み 2009.03.23 10:46 #1661 削除済み 2009.03.23 17:33 #1662 まだこのインジケーターに音声による警告を追加しようとしています......。うまくいかないので、どなたかコードをチェックして いただけませんか? //+------------------------------------------------------------------+ //| //| //+------------------------------------------------------------------+ #property copyright "niva" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 White #property indicator_color2 Red extern bool Email_Enabled = false; extern bool Alert_Enabled = true; //---- input parameters int CountBars=10000; //---- buffers double uptrend[]; double downtrend[]; bool AlertSent,EmailSent; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicator line IndicatorBuffers(2); SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,217); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,218); SetIndexBuffer(0,val1); SetIndexBuffer(1,val2); //---- return(0); } //+------------------------------------------------------------------+ //| AltrTrend_Signal_v2_2 | //+------------------------------------------------------------------+ int start() { if (CountBars>=Bars) CountBars=Bars; int i,shift,counted_bars=IndicatorCounted(); int uptrend, downtrend; for (shift = CountBars; shift>=0; shift--) { if(High[shift-1]>High[shift]&&Low[shift-1]>Low[shift]&&uptrend!=3){ uptrend = uptrend+1; downtrend=0; }else if(High[shift-1]<High[shift]&&Low[shift-1]<Low[shift]&&downtrend!=3){ downtrend=downtrend+1; uptrend=0; } else{ uptrend=0; downtrend=0; } if (uptrend==3) { val1[shift]=Low[shift]; } if (downtrend==3) { val2[shift]=High[shift]; } } return(0); } //---- if (Alert_Enabled && (uptrend[0] != 0 || uptrend[0] !=0) && !AlertSent) { Alert(Symbol() + "HiLow+3"); AlertSent=true; } if (Email_Enabled && (downtrend[0] != 0 || downtrend[0] !=0) && !EmailSent) { SendMail(Symbol() + "HiLow+3","HiLow+3 indicator triggered"); EmailSent=true; } if(downtrend[0] == 0 && uptrend[0] == 0 ) { EmailSent=false; AlertSent=false; } return(0); } //+------------------------------------------------------------------+ How to code? 信号システム(ASCTrend、その他モディフィケーション) [アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. Guilhermesalgado 2009.03.23 19:15 #1663 ありがとうございます。 mrwobbles: コードのどこかで括弧がアンバランスになっています。コードのどこかに } と ) が抜けているようです。開いている場合は+1、閉じている場合は-1です)その数を数えてみてください。正しくインデントされていれば、どこに正しい}を入れるかわかるはずです。ハッピーハンティング いくつかの設定を変更し、ようやくほぼ完成しました。現在、以下のようなコーディングの後に、こう表示されます。 'shortSL' - 変数が定義されていません。 'longSL' - 変数が定義されていません。 こんな感じです。 //+------------------------------------------------------------------+ //| Salgado.mq4|。 //|salgadoguilherme@hotmail.com| //| | //+------------------------------------------------------------------+ #property copyright "" #property link "salgadoguilherme@hotmail.com" extern bool trade=true; extern int barstocount=50; extern double lots=0.01; extern int StopLoss =40; extern int TakeProfit =10; extern int slippage=3; extern int magicnumber=816; //+------------------------------------------------------------------+ //| エキスパート初期化関数 //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| エキスパート初期化関数 //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| エキスパートスタート機能 //+------------------------------------------------------------------+ int start() { //---- if(トレード==true) { //M15 double M15_resistance=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,2,0); double M15_resistance_p=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,2,barstocount-1); double M15_line=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,0,0); double M15_support=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,1,0); double slopeM15=((M15_resistance-M15_resistance_p)/barstocount)/Point; //Alert(DoubleToStr(slopeM15,2); コメント( 「を入力します。 //ショートエントリー if(slopeM15<0 && IsTradeAllowed()==true) { bool shortopen=false; int ord_cnt1=OrdersTotal(); for (int start1=0;start1<ord_cnt1;start1++) { OrderSelect(start1, SELECT_BY_POS, MODE_TRADES); if(OrderMagicNumber()==magicnumber && OrderType()==OP_SELL) {shortopen=true;}。 } if(shortopen==false) { double M15High=iHigh(Symbol(),PERIOD_M15,0); if(M15High>=M15_resistance)とする。 int shortticket=OrderSend(Symbol(),OP_SELL,lots,Bid,slippage,Bid+shortSL,M15_line,DoubleToStr(slopeM15,2)); if(shortticket<0) { //ロングエントリー if(slopeM15>0 && IsTradeAllowed()==true) { bool longopen=false; int ord_cnt=OrdersTotal(); for (int start=0;start<ord_cnt;start++) { OrderSelect(start, SELECT_BY_POS, MODE_TRADES); if(OrderMagicNumber()==magicnumber && OrderType()==OP_BUY) {longopen=true;}。 } if(longopen==false) { double M15Low=iLow(Symbol(),PERIOD_M15,0); if(M15Low<=M15_support)とする。 int longticket=OrderSend(Symbol(),OP_BUY,lots,Ask,slippage,Ask-longSL,M15_line,DoubleToStr(slopeM15,2)); if(longticket<0) { //---- return(0); } //+------------------------------------------------------------------+ How to code? [ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. [アーカイブ!】どんなエキスパートやインジケーターでも無料で書きます。 Jenom Nyam 2009.03.23 23:48 #1664 キャンドル型インディー こんにちは。 私は、添付されたチャートのようなキャンドル型インジケータのコーディング方法に関するMQLチュートリアルをひどく必要としています。このフォーラム内外のどこかへのリンクだけで結構です。本当にありがとうございます。 パイパー ファイル: ma_candles.gif 15 kb darvasboxes 2009.03.24 00:09 #1665 どなたか、次のようなコードの書き方を教えてください。 短期MAが長期MAを越えてからバーの 数を数える。 ありがとうございます。 JForex78 2009.03.25 17:10 #1666 シャットダウン後にトレードを再開するEAコード こんにちは。 停止した後、再び取引を再開することができるEAのサンプルコードはないでしょうか? ありがとうございます。 JForex chazzmoney 2009.03.26 05:17 #1667 コードの書き方は? darvasboxes: どなたか、以下のコードの書き方を教えてください。短期MAが長期MAとクロスしてからのバーの数を数える。 ありがとうございます。 うん! クロスしてからの小節数を数える。 int i; bool shortGreater = (iMA(NULL,0,8,8,MODE_SMMA,PRICE_MEDIAN,0) > iMA(NULL,0,24,8,MODE_SMMA,PRICE_MEDIAN,0)); bool sgLast; for(i=0;i<iBars(NULL,0);i++) { sgLast = shortGreater; shortGreater = (iMA(NULL,0,8,8,MODE_SMMA,PRICE_MEDIAN,i) > iMA(NULL,0,24,8,MODE_SMMA,PRICE_MEDIAN,i)). if(shortGreater !== sgLast) { {。 ブレーク } } iという変数には、クロスしてからのバーの本数が入ります。 もし、これが役に立ったなら、私に現金を送ってください。 ありがとうございました。 chazzmoney 2009.03.26 05:19 #1668 お待たせしました。 Guilhermesalgado: 私はいくつかの設定を変更し、最終的に私はほぼそこにあると信じている!私は、いくつかの設定を変更することに成功した。今、以下のコーディングの後、それは言う。 'shortSL' - 変数が定義されていません。 'longSL' - 変数が定義されていません。 はい、これです。 私はあなたがしたことを受けて、コンパイルできるように修正しました。 注意してください、あなたのロジックは悪く、不完全に見えますし、おそらくあなたが望むようにはならないでしょう。 でも、これでいいんだ。 - ChazzMoney P.S. 170ドルというのはプログラムとしては非常に安いですね。 私は年に1、2回、5桁の金額でカスタム投資ソフトを書いています。 この種の仕事を請け負うプログラマーは注意しなければならない。 バグはランダムトレーダーと同じです。 もし、これが役に立ったと思ったら、遠慮なく現金を送ってください。 という思いがありがたい。 ファイル: guilhermesalgado.mq4 4 kb Arshed Qureshi 2009.03.26 09:17 #1669 標準のZigZagからのコード こんにちは このコードは標準の "ZigZag.mq4 "にあるものです。 "if (counted_bars==0 && downloadhistory) // 履歴がダウンロードされた" counted_bars==0 : 値がゼロに等しいかどうかをチェック する......それはOKです。 downloadhistory : 条件チェックがないのはなぜでしょうか? ありがとうございます。 SPACECHIMP 2009.03.26 13:33 #1670 2つの注文をオープンし、2つの注文をクローズする...CONSISTENTLY。 私は長い間、私のEAが常に買いまたは売りのための2つの注文を開くようにしようと努力してきました。1つはTP付き、もう1つはNONE付き。2つの注文を出したら、反対方向に取引するときまで、もう注文を出さない。 なぜか、口座の履歴を見ると、1つの注文、3つの注文、4つの注文、2つの注文とゴミのように動いているのです。 この辺のコーディングマスターの方、ちょっと覗いてみて、ご意見をいただけませんか? ありがとうございます!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! OPEN ORDERS ------- BuyTicket1 = False; BuyTicket2 = False; while (!BuyTicket1) { BuyTicket1 = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLoss, Ask + TakeProfit * Point, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue).BuyTicket2 = False; "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue).BuyTicket3 = False; Sleep(PausebetweenOrders * 1000);}を実行します。 //if (BuyTicket1 && SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open 1st Buy")を送信。 Sleep(1000); while (!BuyTicket2){。 BuyTicket2 = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLoss, 0, "2nd Buy(#" + MagicNumber + ")", MagicNumber, 0, BlueViolet).BuyTicket2(OP_BUY、Lots, Ask, Slippage, StopLoss, 0, "2回目の買い", MagicNumber + "); Sleep(PausebetweenOrders * 1000);}. ------------ 注文を閉じる ------------ if(オーダートータル() > 0) { ------------ オーダーを閉じる OrderSelect(0, SELECT_BY_POS, MODE_TRADES); if(OrderType() == OP_SELL){。 for (int j = OrdertotalCloseSell-1; j >= 0; j --) {. PositionClosedSell = False; AttemptsTriedCloseSell = 0; オーダーセレクト(j, SELECT_BY_POS, MODE_TRADES)。 while (!PositionClosedSell && AttemptsTriedCloseSell < CloseposnAttempts) {。 AttemptsTriedCloseSell = AttemptsTriedCloseSell + 1; OrderCloseSell = OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, MediumSeaGreen); Sleep(PausebetweenOrders * 1000); if( OrderCloseSell == True ) { // ポジションクローズ成功。 How to code? 戦略的予見システム ゴゲッターEA 1...160161162163164165166167168169170171172173174...347 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
まだこのインジケーターに音声による警告を追加しようとしています......。うまくいかないので、どなたかコードをチェックして いただけませんか?
//|
//|
//+------------------------------------------------------------------+
#property copyright "niva"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 White
#property indicator_color2 Red
extern bool Email_Enabled = false;
extern bool Alert_Enabled = true;
//---- input parameters
int CountBars=10000;
//---- buffers
double uptrend[];
double downtrend[];
bool AlertSent,EmailSent;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicator line
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,217);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,218);
SetIndexBuffer(0,val1);
SetIndexBuffer(1,val2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2 |
//+------------------------------------------------------------------+
int start()
{
if (CountBars>=Bars) CountBars=Bars;
int i,shift,counted_bars=IndicatorCounted();
int uptrend, downtrend;
for (shift = CountBars; shift>=0; shift--)
{
if(High[shift-1]>High[shift]&&Low[shift-1]>Low[shift]&&uptrend!=3){
uptrend = uptrend+1;
downtrend=0;
}else if(High[shift-1]<High[shift]&&Low[shift-1]<Low[shift]&&downtrend!=3){
downtrend=downtrend+1;
uptrend=0;
}
else{
uptrend=0;
downtrend=0;
}
if (uptrend==3)
{
val1[shift]=Low[shift];
}
if (downtrend==3)
{
val2[shift]=High[shift];
}
}
return(0);
}
//----
if (Alert_Enabled && (uptrend[0] != 0 || uptrend[0] !=0) && !AlertSent)
{
Alert(Symbol() + "HiLow+3");
AlertSent=true;
}
if (Email_Enabled && (downtrend[0] != 0 || downtrend[0] !=0) && !EmailSent)
{
SendMail(Symbol() + "HiLow+3","HiLow+3 indicator triggered");
EmailSent=true;
}
if(downtrend[0] == 0 && uptrend[0] == 0 )
{
EmailSent=false;
AlertSent=false;
}
return(0);
}
//+------------------------------------------------------------------+ありがとうございます。
コードのどこかで括弧がアンバランスになっています。コードのどこかに } と ) が抜けているようです。開いている場合は+1、閉じている場合は-1です)その数を数えてみてください。正しくインデントされていれば、どこに正しい}を入れるかわかるはずです。ハッピーハンティング
いくつかの設定を変更し、ようやくほぼ完成しました。現在、以下のようなコーディングの後に、こう表示されます。
'shortSL' - 変数が定義されていません。
'longSL' - 変数が定義されていません。
こんな感じです。
//+------------------------------------------------------------------+
//| Salgado.mq4|。
//|salgadoguilherme@hotmail.com|
//| |
//+------------------------------------------------------------------+
#property copyright ""
#property link "salgadoguilherme@hotmail.com"
extern bool trade=true;
extern int barstocount=50;
extern double lots=0.01;
extern int StopLoss =40;
extern int TakeProfit =10;
extern int slippage=3;
extern int magicnumber=816;
//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| エキスパートスタート機能
//+------------------------------------------------------------------+
int start()
{
//----
if(トレード==true)
{
//M15
double M15_resistance=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,2,0);
double M15_resistance_p=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,2,barstocount-1);
double M15_line=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,0,0);
double M15_support=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,1,0);
double slopeM15=((M15_resistance-M15_resistance_p)/barstocount)/Point;
//Alert(DoubleToStr(slopeM15,2);
コメント(
「を入力します。
//ショートエントリー
if(slopeM15<0 && IsTradeAllowed()==true)
{
bool shortopen=false;
int ord_cnt1=OrdersTotal();
for (int start1=0;start1<ord_cnt1;start1++)
{
OrderSelect(start1, SELECT_BY_POS, MODE_TRADES);
if(OrderMagicNumber()==magicnumber && OrderType()==OP_SELL)
{shortopen=true;}。
}
if(shortopen==false)
{
double M15High=iHigh(Symbol(),PERIOD_M15,0);
if(M15High>=M15_resistance)とする。
int shortticket=OrderSend(Symbol(),OP_SELL,lots,Bid,slippage,Bid+shortSL,M15_line,DoubleToStr(slopeM15,2));
if(shortticket<0)
{
//ロングエントリー
if(slopeM15>0 && IsTradeAllowed()==true)
{
bool longopen=false;
int ord_cnt=OrdersTotal();
for (int start=0;start<ord_cnt;start++)
{
OrderSelect(start, SELECT_BY_POS, MODE_TRADES);
if(OrderMagicNumber()==magicnumber && OrderType()==OP_BUY)
{longopen=true;}。
}
if(longopen==false)
{
double M15Low=iLow(Symbol(),PERIOD_M15,0);
if(M15Low<=M15_support)とする。
int longticket=OrderSend(Symbol(),OP_BUY,lots,Ask,slippage,Ask-longSL,M15_line,DoubleToStr(slopeM15,2));
if(longticket<0)
{
//----
return(0);
}
//+------------------------------------------------------------------+
キャンドル型インディー
こんにちは。
私は、添付されたチャートのようなキャンドル型インジケータのコーディング方法に関するMQLチュートリアルをひどく必要としています。このフォーラム内外のどこかへのリンクだけで結構です。本当にありがとうございます。
パイパー
どなたか、次のようなコードの書き方を教えてください。
短期MAが長期MAを越えてからバーの 数を数える。
ありがとうございます。
シャットダウン後にトレードを再開するEAコード
こんにちは。
停止した後、再び取引を再開することができるEAのサンプルコードはないでしょうか?
ありがとうございます。
JForex
コードの書き方は?
どなたか、以下のコードの書き方を教えてください。
短期MAが長期MAとクロスしてからのバーの数を数える。
ありがとうございます。うん!
クロスしてからの小節数を数える。
int i;
bool shortGreater = (iMA(NULL,0,8,8,MODE_SMMA,PRICE_MEDIAN,0) > iMA(NULL,0,24,8,MODE_SMMA,PRICE_MEDIAN,0));
bool sgLast;
for(i=0;i<iBars(NULL,0);i++) {
sgLast = shortGreater;
shortGreater = (iMA(NULL,0,8,8,MODE_SMMA,PRICE_MEDIAN,i) > iMA(NULL,0,24,8,MODE_SMMA,PRICE_MEDIAN,i)).
if(shortGreater !== sgLast) { {。
ブレーク
}
}
iという変数には、クロスしてからのバーの本数が入ります。
もし、これが役に立ったなら、私に現金を送ってください。 ありがとうございました。
お待たせしました。
私はいくつかの設定を変更し、最終的に私はほぼそこにあると信じている!私は、いくつかの設定を変更することに成功した。今、以下のコーディングの後、それは言う。
'shortSL' - 変数が定義されていません。
'longSL' - 変数が定義されていません。
はい、これです。 私はあなたがしたことを受けて、コンパイルできるように修正しました。 注意してください、あなたのロジックは悪く、不完全に見えますし、おそらくあなたが望むようにはならないでしょう。
でも、これでいいんだ。
- ChazzMoney
P.S. 170ドルというのはプログラムとしては非常に安いですね。 私は年に1、2回、5桁の金額でカスタム投資ソフトを書いています。 この種の仕事を請け負うプログラマーは注意しなければならない。 バグはランダムトレーダーと同じです。
もし、これが役に立ったと思ったら、遠慮なく現金を送ってください。 という思いがありがたい。
標準のZigZagからのコード
こんにちは
このコードは標準の "ZigZag.mq4 "にあるものです。
"if (counted_bars==0 && downloadhistory) // 履歴がダウンロードされた"
counted_bars==0 : 値がゼロに等しいかどうかをチェック する......それはOKです。
downloadhistory : 条件チェックがないのはなぜでしょうか?
ありがとうございます。
2つの注文をオープンし、2つの注文をクローズする...CONSISTENTLY。
私は長い間、私のEAが常に買いまたは売りのための2つの注文を開くようにしようと努力してきました。1つはTP付き、もう1つはNONE付き。2つの注文を出したら、反対方向に取引するときまで、もう注文を出さない。
なぜか、口座の履歴を見ると、1つの注文、3つの注文、4つの注文、2つの注文とゴミのように動いているのです。
この辺のコーディングマスターの方、ちょっと覗いてみて、ご意見をいただけませんか?
ありがとうございます!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
OPEN ORDERS
-------
BuyTicket1 = False;
BuyTicket2 = False;
while (!BuyTicket1) {
BuyTicket1 = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLoss, Ask + TakeProfit * Point, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue).BuyTicket2 = False; "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue).BuyTicket3 = False;
Sleep(PausebetweenOrders * 1000);}を実行します。
//if (BuyTicket1 && SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open 1st Buy")を送信。
Sleep(1000);
while (!BuyTicket2){。
BuyTicket2 = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLoss, 0, "2nd Buy(#" + MagicNumber + ")", MagicNumber, 0, BlueViolet).BuyTicket2(OP_BUY、Lots, Ask, Slippage, StopLoss, 0, "2回目の買い", MagicNumber + ");
Sleep(PausebetweenOrders * 1000);}.
------------
注文を閉じる
------------
if(オーダートータル() > 0) { ------------ オーダーを閉じる
OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
if(OrderType() == OP_SELL){。
for (int j = OrdertotalCloseSell-1; j >= 0; j --) {.
PositionClosedSell = False;
AttemptsTriedCloseSell = 0;
オーダーセレクト(j, SELECT_BY_POS, MODE_TRADES)。
while (!PositionClosedSell && AttemptsTriedCloseSell < CloseposnAttempts) {。
AttemptsTriedCloseSell = AttemptsTriedCloseSell + 1;
OrderCloseSell = OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, MediumSeaGreen);
Sleep(PausebetweenOrders * 1000);
if( OrderCloseSell == True ) { // ポジションクローズ成功。