[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 999 1...9929939949959969979989991000100110021003100410051006...1145 新しいコメント GAWRIK 2010.12.01 00:00 #9981 こんにちは。EMAの期間を最適化するために、EAのコードに何を挿入すればよいか教えてください。 Artyom Trishkin 2010.12.01 00:34 #9982 gawrik: こんにちは。EMAの期間を最適化するために、EAのコードに何を挿入すればよいか教えてください。 EMA期間とは何ですか? GAWRIK 2010.12.01 06:05 #9983 moving average exp. period.ここに放り込んでいいのか、誰かツッコミ入れてくれませんか? GAWRIK 2010.12.01 06:18 #9984 #property copyright"hasgkhlhjgg" #プロパティリンク "http://www.efefrWRF.com" #define MIN_STOPLOSS_POINT 10 #define MIN_TAKEPROFIT_POINT 10 #define MAGIC 316995 extern string sNameExpert = "DGJJFYGJD"; extern int nAccount =0; extern double dBuyStopLossPoint = 0; extern double dSellStopLossPoint = 0; extern double dBuyTakeProfitPoint = 0; extern double dSellTakeProfitPoint = 0; extern double dBuyTrailingStopPoint = 0; extern double dSellTrailingStopPoint = 0; extern double dLots = 0.03; extern int nSlippage = 4; extern bool lFlagUseHourTrade = False; extern inttern nFromHourTrade = 0; extern intNToHourTrade = 23; extern bool lFlagUseSound = True; extern string sSoundFileName = "alert.wav"; 外部カラー colorOpenBuy = Blue; extern colorCloseBuy = Aqua; extern colorOpenSell = Red; extern colorCloseSell = Aqua; void deinit() { Comment(")です。 } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start(){ if (lFlagUseHourTrade){。 if (!(Hour()>=nFromHourTrade && Hour()<=nToHourTrade)){ Comment("貿易の時間はまだ来ていない!"); return(0)です。 } } if(バー < 100){ Print("bars less than 100"); return(0)です。 } if(nAccount > 0 && nAccount != AccountNumber(){) Comment("取引口座:"+AccountNumber()+"FORBIDDEN!"); return(0)です。 } if((dBuyStopLossPoint > 0 && dBuyStopLossPoint < MIN_STOPLOSS_POINT) |||) (dSellStopLossPoint > 0 && dSellStopLossPoint < MIN_STOPLOSS_POINT)){ (dSellStopLossPoint > 0 && dSellStopLossPoint < MIN_STOPLOSS_POINT) Print("StopLossが" + MIN_STOPLOSS_POINTより小さい); return(0)です。 } if((dBuyTakeProfitPoint > 0 && dBuyTakeProfitPoint < MIN_TAKEPROFIT_POINT) |||) (dSellTakeProfitPoint > 0 && dSellTakeProfitPoint < MIN_TAKEPROFIT_POINT)){ (dSellTakeProfitPoint > 0 && dSellTakeProfitPoint < MIN_TAKEPROFIT_POINT) Print("TakeProfitが" + MIN_TAKEPROFIT_POINTより小さい); return(0)です。 } double diMA0=iMA(NULL,1,15,0,MODE_EMA,PRICE_CLOSE,0); double diMA1=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA2=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA3=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA4=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA5=iMA(NULL,1,100,0,MODE_EMA,PRICE_CLOSE,0); double diMA6=iMA(NULL,5,15,0,MODE_EMA,PRICE_CLOSE,0); double diMA7=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA8=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA9=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA10=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA11=iMA(NULL,5,100,0,MODE_EMA,PRICE_CLOSE,0); double diMA12=iMA(NULL,15,15,0,MODE_EMA,PRICE_CLOSE,0); double diMA13=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA14=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA15=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA16=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA17=iMA(NULL,15,100,0,MODE_EMA,PRICE_CLOSE,0); double diMA18=iMA(NULL,30,15,0,MODE_EMA,PRICE_CLOSE,0); double diMA19=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA20=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA21=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA22=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA23=iMA(NULL,30,100,0,MODE_EMA,PRICE_CLOSE,0); double diMA24=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0); double diMA25=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA26=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA27=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA28=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA29=iMA(NULL,60,100,0,MODE_EMA,PRICE_CLOSE,0); double diMA30=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0); double diMA31=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA32=iMA(NULL,1,15,0,MODE_EMA,PRICE_CLOSE,0); double diMA33=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA34=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA35=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA36=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA37=iMA(NULL,1,100,0,MODE_EMA,PRICE_CLOSE,0); double diMA38=iMA(NULL,5,15,0,MODE_EMA,PRICE_CLOSE,0); double diMA39=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA40=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA41=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA42=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA43=iMA(NULL,5,100,0,MODE_EMA,PRICE_CLOSE,0); double diMA44=iMA(NULL,15,15,0,MODE_EMA,PRICE_CLOSE,0); double diMA45=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA46=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA47=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA48=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA49=iMA(NULL,15,100,0,MODE_EMA,PRICE_CLOSE,0); double diMA50=iMA(NULL,30,15,0,MODE_EMA,PRICE_CLOSE,0); double diMA51=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA52=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA53=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA54=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA55=iMA(NULL,30,100,0,MODE_EMA,PRICE_CLOSE,0); double diMA56=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0); double diMA57=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA58=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0); double diMA59=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA60=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0); double diMA61=iMA(NULL,60,100,0,MODE_EMA,PRICE_CLOSE,0); double diMA62=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0); double diMA63=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0); if(AccountFreeMargin() < (1000*dLots)){。 Print("We have no money.フリーマージン = " + AccountFreeMargin()"); return(0)です。 } bool lFlagBuyOpen = false, lFlagSellOpen = false, lFlagBuyClose = false, lFlagSellClose = false; lFlagBuyOpen = (diMA0>diMA1 && diMA2>diMA3 && diMA4>diMA5 && diMA6>diMA7 && diMA8>diMA9 && diMA10>diMA11 && diMA12>diMA13 && diMA14>)diMA15 && diMA16>diMA17 && diMA18>diMA19 && diMA20>diMA21 && diMA22>diMA23 && diMA24>diMA25 && diMA26>diMA27 && diMA28>diMA29); lFlagSellOpen = (diMA32<diMA33 && diMA34<diMA35 && diMA36<diMA37 && diMA38<diMA39 && diMA40<diMA41 && diMA42<diMA43 && diMA44<diMA45 && diMA46<diMA47; とする)diMA46<diMA47 && diMA48<diMA49 && diMA50<diMA51 && diMA52<diMA53 && diMA54<diMA55 && diMA56<diMA57 && diMA58<diMA59 && diMA60<diMA61) とする。 lFlagBuyClose = (diMA30<diMA31); lFlagSellClose = (diMA62>diMA63); if (!ExistPositions(){) if (lFlagBuyOpen){ { (lFlagBuyOpen) OpenBuy()です。 { return(0); } if (lFlagSellOpen){。 OpenSell()です。 return(0)です。 } } if(ExistPositions()){。 if(OrderType()==OP_BUY){。 if(lFlagBuyClose){。 bool flagCloseBuy = OrderClose(OrderTicket(), OrderLots(), Bid, nSlippage, colorCloseBuy); if (flagCloseBuy && lFlagUseSound) PlaySound(sSoundFileName)を実行します。 return(0)です。 } } if(OrderType()==OP_SELL){。 if(lFlagSellClose){。 bool flagCloseSell = OrderClose(OrderTicket(), OrderLots(), Ask, nSlippage, colorCloseSell)とする。 if (flagCloseSell && lFlagUseSound) PlaySound(sSoundFileName)を実行します。 return(0)です。 } } } if (dBuyTrailingStopPoint > 0 || dSellTrailingStopPoint > 0){ if (dBuyTrailingStopPoint > 0 || dSellTrailingStopPoint > 0) for (int i=0; i<OrdersTotal(); i++){ if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ bool lMagic = trueです。 if (MAGIC > 0 && OrderMagicNumber() != MAGIC) lMagic = falseです。 if (OrderSymbol()==Symbol() && lMagic) {. if (OrderType()==OP_BUY && dBuyTrailingStopPoint > 0) {。 if (Bid-OrderOpenPrice() > dBuyTrailingStopPoint*Point) {。 if (OrderStopLoss()<Bid-dBuyTrailingStopPoint*ポイント) ModifyStopLoss(Bid-dBuyTrailingStopPoint*Point)。 } } if (OrderType()==OP_SELL) { (オーダータイプ==OP_SELL) if (OrderOpenPrice()-Ask>dSellTrailingStopPoint*Point) { (OrderOpenPrice()-Ask>dSellTrailingStopPoint*Point) if (OrderStopLoss()>Ask+dSellTrailingStopPoint*Point || OrderStopLoss()==0) ModifyStopLoss(Ask+dSellTrailingStopPoint*Point)。 } } } } } } を返します(0)。 } bool ExistPositions() { (ブールエグジストポジションズ) for (int i=0; i<OrdersTotal(); i++){ if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ bool lMagic = trueです。 if (MAGIC > 0 && OrderMagicNumber() != MAGIC) lMagic = falseです。 if (OrderSymbol()==Symbol() && lMagic) {. return(True)です。 } } } return(false)です。 } void ModifyStopLoss(double ldStopLoss) { (修正ストップロス) bool lFlagModify = OrderModify(OrderTicket(), OrderOpenPrice(), ldStopLoss, OrderTakeProfit(), 0, CLR_NONE)です。 if (lFlagModify && lFlagUseSound) PlaySound(sSoundFileName)を実行します。 } void OpenBuy() { double dStopLoss = 0, dTakeProfit = 0; if (dBuyStopLossPoint > 0) dStopLoss = Bid-dBuyStopLossPoint*Point; if (dBuyTakeProfitPoint > 0) dTakeProfit = Bid + dBuyTakeProfitPoint * Point; int numorder = OrderSend(Symbol(), OP_BUY, dLots, Ask, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenBuy); if (numorder > -1 && lFlagUseSound) PlaySound(sSoundFileName)を実行します。 } void OpenSell() { double dStopLoss = 0, dTakeProfit = 0; if (dSellStopLossPoint > 0) dStopLoss = Ask+ dSellStopLossPoint*Point; if (dSellTakeProfitPoint > 0) dTakeProfit = Ask-dSellTakeProfitPoint*Point; int numorder = OrderSend(Symbol(,OP_SELL, dLots, Bid, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenSell); if (numorder > -1 && lFlagUseSound) PlaySound(sSoundFileName)を実行します。 } ただ、異なるペアで使いたいのですが、EURUSD用に設計されているので、道徳的にも物理的にも手動で調整することができません。 [WARNING CLOSED!] Any newbie EA that produces 1650% Need help with simple GAWRIK 2010.12.01 06:21 #9985 スライディングの開閉 GAWRIK 2010.12.01 08:07 #9986 誰か助けて volshebnik 2010.12.01 09:18 #9987 おはようございます。 関数計算で算出された2つのパラメータを出力する方法を教えてください。私の理解が正しければ、return()関数は、その括弧で指定された1つのパラメータのみを返します。 double РасчётТЛвверх(int a, double Цена1 Син) { double МА23 = iMA(NULL,0,23,0,MODE_EMA,PRICE_CLOSE,a), MМА23[17]; MМА23[0]=МА23-603*Point; MМА23[1]=МА23-377*Point; MМА23[2]=МА23-233*Point; MМА23[3]=МА23-144*Point; MМА23[4]=МА23-89*Point; MМА23[5]=МА23-55*Point; MМА23[6]=МА23-34*Point; MМА23[7]=МА23-21*Point; MМА23[8]=МА23; MМА23[9]=МА23+21*Point; MМА23[10]=МА23+34*Point; MМА23[11]=МА23+55*Point; MМА23[12]=МА23+89*Point; MМА23[13]=МА23+144*Point; MМА23[14]=МА23+233*Point; MМА23[15]=МА23+377*Point; MМА23[16]=МА23+603*Point; for(int i=0;i<=16;i++) { if(NormalizeDouble(Цена1 Син+8*Point,Digits)<=NormalizeDouble(MМА23[i],Digits)) { double ТЛвверх=MМА23[i+5]; double БезУбMМА23 вверх = MМА23[i+4]; break; } } return(ТЛвверх); } //-------------------------------------------------------------------- TLvupしか出力できない。あと、BezubMMA23↑も使いたい。しかし、return(TLup, BezUbMMA23up) や return(TLup; BezUbMMA23up) と書くと、エラーが発生する。この関数は double TL-up=CalculateTL-up(a,Price1Cin) として呼び出されます。 TLupとBezUbMMA23upの両方を使うにはどうしたらいいのでしょうか?それとも、パラメータWithoutMMA23upの計算のために、別途、与えられたコードを書き直し、return( WithoutMMA23up)を出力すればよいのでしょうか。 Aleksander 2010.12.01 09:30 #9988 例えば、グローバルVariableを作って、そこに関数の結果を入れる...。 volshebnik 2010.12.01 09:45 #9989 そのため、やはり計算結果を2つ出力する必要があります。添付のコードでは1つしか出力されません。どうすれば2つ出力できますか? volshebnik 2010.12.01 10:48 #9990 ありがとうございます。https://www.mql5.com/ru/articles/1496。 1...9929939949959969979989991000100110021003100410051006...1145 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは。EMAの期間を最適化するために、EAのコードに何を挿入すればよいか教えてください。
#property copyright"hasgkhlhjgg"
#プロパティリンク "http://www.efefrWRF.com"
#define MIN_STOPLOSS_POINT 10
#define MIN_TAKEPROFIT_POINT 10
#define MAGIC 316995
extern string sNameExpert = "DGJJFYGJD";
extern int nAccount =0;
extern double dBuyStopLossPoint = 0;
extern double dSellStopLossPoint = 0;
extern double dBuyTakeProfitPoint = 0;
extern double dSellTakeProfitPoint = 0;
extern double dBuyTrailingStopPoint = 0;
extern double dSellTrailingStopPoint = 0;
extern double dLots = 0.03;
extern int nSlippage = 4;
extern bool lFlagUseHourTrade = False;
extern inttern nFromHourTrade = 0;
extern intNToHourTrade = 23;
extern bool lFlagUseSound = True;
extern string sSoundFileName = "alert.wav";
外部カラー colorOpenBuy = Blue;
extern colorCloseBuy = Aqua;
extern colorOpenSell = Red;
extern colorCloseSell = Aqua;
void deinit() {
Comment(")です。
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start(){
if (lFlagUseHourTrade){。
if (!(Hour()>=nFromHourTrade && Hour()<=nToHourTrade)){
Comment("貿易の時間はまだ来ていない!");
return(0)です。
}
}
if(バー < 100){
Print("bars less than 100");
return(0)です。
}
if(nAccount > 0 && nAccount != AccountNumber(){)
Comment("取引口座:"+AccountNumber()+"FORBIDDEN!");
return(0)です。
}
if((dBuyStopLossPoint > 0 && dBuyStopLossPoint < MIN_STOPLOSS_POINT) |||)
(dSellStopLossPoint > 0 && dSellStopLossPoint < MIN_STOPLOSS_POINT)){ (dSellStopLossPoint > 0 && dSellStopLossPoint < MIN_STOPLOSS_POINT)
Print("StopLossが" + MIN_STOPLOSS_POINTより小さい);
return(0)です。
}
if((dBuyTakeProfitPoint > 0 && dBuyTakeProfitPoint < MIN_TAKEPROFIT_POINT) |||)
(dSellTakeProfitPoint > 0 && dSellTakeProfitPoint < MIN_TAKEPROFIT_POINT)){ (dSellTakeProfitPoint > 0 && dSellTakeProfitPoint < MIN_TAKEPROFIT_POINT)
Print("TakeProfitが" + MIN_TAKEPROFIT_POINTより小さい);
return(0)です。
}
double diMA0=iMA(NULL,1,15,0,MODE_EMA,PRICE_CLOSE,0);
double diMA1=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA2=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA3=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA4=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA5=iMA(NULL,1,100,0,MODE_EMA,PRICE_CLOSE,0);
double diMA6=iMA(NULL,5,15,0,MODE_EMA,PRICE_CLOSE,0);
double diMA7=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA8=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA9=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA10=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA11=iMA(NULL,5,100,0,MODE_EMA,PRICE_CLOSE,0);
double diMA12=iMA(NULL,15,15,0,MODE_EMA,PRICE_CLOSE,0);
double diMA13=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA14=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA15=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA16=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA17=iMA(NULL,15,100,0,MODE_EMA,PRICE_CLOSE,0);
double diMA18=iMA(NULL,30,15,0,MODE_EMA,PRICE_CLOSE,0);
double diMA19=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA20=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA21=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA22=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA23=iMA(NULL,30,100,0,MODE_EMA,PRICE_CLOSE,0);
double diMA24=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0);
double diMA25=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA26=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA27=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA28=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA29=iMA(NULL,60,100,0,MODE_EMA,PRICE_CLOSE,0);
double diMA30=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0);
double diMA31=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA32=iMA(NULL,1,15,0,MODE_EMA,PRICE_CLOSE,0);
double diMA33=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA34=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA35=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA36=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA37=iMA(NULL,1,100,0,MODE_EMA,PRICE_CLOSE,0);
double diMA38=iMA(NULL,5,15,0,MODE_EMA,PRICE_CLOSE,0);
double diMA39=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA40=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA41=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA42=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA43=iMA(NULL,5,100,0,MODE_EMA,PRICE_CLOSE,0);
double diMA44=iMA(NULL,15,15,0,MODE_EMA,PRICE_CLOSE,0);
double diMA45=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA46=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA47=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA48=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA49=iMA(NULL,15,100,0,MODE_EMA,PRICE_CLOSE,0);
double diMA50=iMA(NULL,30,15,0,MODE_EMA,PRICE_CLOSE,0);
double diMA51=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA52=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA53=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA54=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA55=iMA(NULL,30,100,0,MODE_EMA,PRICE_CLOSE,0);
double diMA56=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0);
double diMA57=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA58=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA59=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA60=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA61=iMA(NULL,60,100,0,MODE_EMA,PRICE_CLOSE,0);
double diMA62=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0);
double diMA63=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0);
if(AccountFreeMargin() < (1000*dLots)){。
Print("We have no money.フリーマージン = " + AccountFreeMargin()");
return(0)です。
}
bool lFlagBuyOpen = false, lFlagSellOpen = false, lFlagBuyClose = false, lFlagSellClose = false;
lFlagBuyOpen = (diMA0>diMA1 && diMA2>diMA3 && diMA4>diMA5 && diMA6>diMA7 && diMA8>diMA9 && diMA10>diMA11 && diMA12>diMA13 && diMA14>)diMA15 && diMA16>diMA17 && diMA18>diMA19 && diMA20>diMA21 && diMA22>diMA23 && diMA24>diMA25 && diMA26>diMA27 && diMA28>diMA29);
lFlagSellOpen = (diMA32<diMA33 && diMA34<diMA35 && diMA36<diMA37 && diMA38<diMA39 && diMA40<diMA41 && diMA42<diMA43 && diMA44<diMA45 && diMA46<diMA47; とする)diMA46<diMA47 && diMA48<diMA49 && diMA50<diMA51 && diMA52<diMA53 && diMA54<diMA55 && diMA56<diMA57 && diMA58<diMA59 && diMA60<diMA61) とする。
lFlagBuyClose = (diMA30<diMA31);
lFlagSellClose = (diMA62>diMA63);
if (!ExistPositions(){)
if (lFlagBuyOpen){ { (lFlagBuyOpen)
OpenBuy()です。
{ return(0);
}
if (lFlagSellOpen){。
OpenSell()です。
return(0)です。
}
}
if(ExistPositions()){。
if(OrderType()==OP_BUY){。
if(lFlagBuyClose){。
bool flagCloseBuy = OrderClose(OrderTicket(), OrderLots(), Bid, nSlippage, colorCloseBuy);
if (flagCloseBuy && lFlagUseSound)
PlaySound(sSoundFileName)を実行します。
return(0)です。
}
}
if(OrderType()==OP_SELL){。
if(lFlagSellClose){。
bool flagCloseSell = OrderClose(OrderTicket(), OrderLots(), Ask, nSlippage, colorCloseSell)とする。
if (flagCloseSell && lFlagUseSound)
PlaySound(sSoundFileName)を実行します。
return(0)です。
}
}
}
if (dBuyTrailingStopPoint > 0 || dSellTrailingStopPoint > 0){ if (dBuyTrailingStopPoint > 0 || dSellTrailingStopPoint > 0)
for (int i=0; i<OrdersTotal(); i++){
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
bool lMagic = trueです。
if (MAGIC > 0 && OrderMagicNumber() != MAGIC)
lMagic = falseです。
if (OrderSymbol()==Symbol() && lMagic) {.
if (OrderType()==OP_BUY && dBuyTrailingStopPoint > 0) {。
if (Bid-OrderOpenPrice() > dBuyTrailingStopPoint*Point) {。
if (OrderStopLoss()<Bid-dBuyTrailingStopPoint*ポイント)
ModifyStopLoss(Bid-dBuyTrailingStopPoint*Point)。
}
}
if (OrderType()==OP_SELL) { (オーダータイプ==OP_SELL)
if (OrderOpenPrice()-Ask>dSellTrailingStopPoint*Point) { (OrderOpenPrice()-Ask>dSellTrailingStopPoint*Point)
if (OrderStopLoss()>Ask+dSellTrailingStopPoint*Point || OrderStopLoss()==0)
ModifyStopLoss(Ask+dSellTrailingStopPoint*Point)。
}
}
}
}
}
}
を返します(0)。
}
bool ExistPositions() { (ブールエグジストポジションズ)
for (int i=0; i<OrdersTotal(); i++){
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
bool lMagic = trueです。
if (MAGIC > 0 && OrderMagicNumber() != MAGIC)
lMagic = falseです。
if (OrderSymbol()==Symbol() && lMagic) {.
return(True)です。
}
}
}
return(false)です。
}
void ModifyStopLoss(double ldStopLoss) { (修正ストップロス)
bool lFlagModify = OrderModify(OrderTicket(), OrderOpenPrice(), ldStopLoss, OrderTakeProfit(), 0, CLR_NONE)です。
if (lFlagModify && lFlagUseSound)
PlaySound(sSoundFileName)を実行します。
}
void OpenBuy() {
double dStopLoss = 0, dTakeProfit = 0;
if (dBuyStopLossPoint > 0)
dStopLoss = Bid-dBuyStopLossPoint*Point;
if (dBuyTakeProfitPoint > 0)
dTakeProfit = Bid + dBuyTakeProfitPoint * Point;
int numorder = OrderSend(Symbol(), OP_BUY, dLots, Ask, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenBuy);
if (numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName)を実行します。
}
void OpenSell() {
double dStopLoss = 0, dTakeProfit = 0;
if (dSellStopLossPoint > 0)
dStopLoss = Ask+ dSellStopLossPoint*Point;
if (dSellTakeProfitPoint > 0)
dTakeProfit = Ask-dSellTakeProfitPoint*Point;
int numorder = OrderSend(Symbol(,OP_SELL, dLots, Bid, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenSell);
if (numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName)を実行します。
}
ただ、異なるペアで使いたいのですが、EURUSD用に設計されているので、道徳的にも物理的にも手動で調整することができません。
おはようございます。
関数計算で算出された2つのパラメータを出力する方法を教えてください。私の理解が正しければ、return()関数は、その括弧で指定された1つのパラメータのみを返します。
TLvupしか出力できない。あと、BezubMMA23↑も使いたい。しかし、return(TLup, BezUbMMA23up) や return(TLup; BezUbMMA23up) と書くと、エラーが発生する。この関数は double TL-up=CalculateTL-up(a,Price1Cin) として呼び出されます。
TLupとBezUbMMA23upの両方を使うにはどうしたらいいのでしょうか?それとも、パラメータWithoutMMA23upの計算のために、別途、与えられたコードを書き直し、return( WithoutMMA23up)を出力すればよいのでしょうか。