[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 697 1...690691692693694695696697698699700701702703704...1145 新しいコメント Sergey Guliaev 2010.07.13 07:14 #6961 rensbit: アンカーの角度は、ウィンドウ内のオブジェクトの位置をどの角度からカウントするかということです。角度は左から時計回りに数えます。 右下にスナップする場合、負の座標を設定すればいいのですか? Валентин 2010.07.13 07:16 #6962 valenok2003: 右下にスナップする場合、負の座標を設定するのでしょうか? いいえ、正の座標は、端末が勝手に目的の点を計算します。例えば、こんな感じです。第2コーナーから15ピクセル 削除済み 2010.07.13 07:17 #6963 Azerus: アドバイスをお願いします。 連続するイベントの数(例えば、終値が始値より高い、またはその逆のバーの数)を計算するためには、次のようにしか思いつきませんでした。 (1)連続したシリーズが停止した場合、カウンターの読み取りをリセットする方法、(2)Buffer[i]を正しく書き込む方法、つまり結果自体を「見る」にはどうすればよいのか? 例えば、あるバーのインジケータが「-3」を示した場合、それは3本連続で始値より下に閉じたことを意味し、その次のバーが始値の上に閉じた場合、インジケータは「1」を示す・・・・・・。 int i=Bars-1 while (i > 0) { int x=0; int y=0; if ( Close[i] > Open[i] ) { x++ ; Buf [i]=x; }. if (Close[i] < Open[i] ) { y-- ; Buf2[i] =y ; }. i--; } Sergey Guliaev 2010.07.13 07:20 #6964 rensbit: いいえ、正の座標では、端末が自ら目的のポイントを計算します。例えば、こんな感じです。2コーナーから15ピクセル ありがとうございます、うまくいきました。 cyclik333 2010.07.13 07:31 #6965 artmedia70: 推測されないように、コードを表示する ゴーランドプログラムで作られた、あなたのマーチンを加えたもの。 //+------------------------------------------------------------------+ //| 著作権 2005, Gordago Software Corp. //| http://www.gordago.com/ | //| バージョン2.0 //+------------------------------------------------------------------+ #property copyright"著作権 2005, Gordago Software Corp." #プロパティリンク "http://www.gordago.com" #define MIN_STOPLOSS_POINT 10 #define MIN_TAKEPROFIT_POINT 10 #define MAGIC 218650 extern string sNameExpert = "ゴルダゴから生成する"; 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 Lot = 0.10; extern int nSlippage = 30; extern bool lFlagUseHourTrade = True。 extern inttern nFromHourTrade = 0; extern intToHourTrade = 23; extern bool lFlagUseSound = False; 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 diOpen0=iOpen(NULL,60,0); double d1=(0.00030); double diHigh2=iHigh(NULL,60,0); double diOpen3=iOpen(NULL,60,0); double d4=(0.00030)です。 double diLow5=iLow(NULL,60,0); double diOpen6=iOpen(NULL,60,1); double diClose7=iClose(NULL,60,1); double diOpen8=iOpen(NULL,60,2); double diClose9=iClose(NULL,60,2)。 double diOpen10=iOpen(NULL,60,0); double d11=(0.00030); double diHigh12=iHigh(NULL,60,0); double diOpen13=iOpen(NULL,60,0); double d14=(0.00030); double diLow15=iLow(NULL,60,0)。 double diOpen16=iOpen(NULL,60,1); double diClose17=iClose(NULL,60,1)。 double diOpen18=iOpen(NULL,60,2); double diClose19=iClose(NULL,60,2); if(AccountFreeMargin() < (1000*Lot)){。 Print("We have no money.フリーマージン = " + AccountFreeMargin()"); return(0)です。 } bool lFlagBuyOpen = false, lFlagSellOpen = false, lFlagBuyClose = false, lFlagSellClose = false; lFlagBuyOpen = (diOpen0+d1>diHigh2 && diOpen3-d4<diLow5 && diOpen6<diClose7 && diOpen8>diClose9) とする。 lFlagSellOpen = (diOpen10+d11>diHigh12 && diOpen13-d14<diLow15 && diOpen16>diClose17 && diOpen18<diClose19); lFlagBuyClose = Falseとする。 lFlagSellClose = Falseとする。 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)を実行します。 } //+----------------------------------------------------------------------------+ //| 作成者 : Kim Igor V. aka KimIV, http://www.kimiv.ru||Google Play! //+----------------------------------------------------------------------------+ | バージョン:2008年2月19日 //| 説明 : 最後の位置が失われたことを示すフラグを返す。 //+----------------------------------------------------------------------------+ //| パラメータ: | //| sy - 楽器の名前 (" - 任意のシンボル, |) //| NULL - 現在のシンボル) | //| op - 操作 (-1 - 任意の位置) //| mn - MagicNumber (-1 - 任意のマジック) |. //+----------------------------------------------------------------------------+ bool isLossLastPos(string sy="", int op=-1, int mn=-1) {. datetime t; int i, j=-1, k=OrdersHistoryTotal()です。 if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) {. if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){ if (OrderSymbol()==sy || sy=="){ if (OrderType()==OP_BUY || OrderType()==OP_SELL) { (オーダータイプ()==OP_BUY) if (op<0 || OrderType()==op) { }. if (mn<0 || OrderMagicNumber()==mn) {. if (t<OrderCloseTime()){ t=OrderCloseTime()。 j=iとする。 } } } } } } } if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)){ if (オーダープロフィット()<0) return(True) } return(False)です。 } void OpenBuy(){。 double dStopLoss = 0, dTakeProfit = 0; double Lots_New = Lot; if (isLossLastPos(NULL, -1, MAGIC)) Lots_New *= 2; else if (!isLossLastPos(NULL, -1, MAGIC)) Lots_New = Lot; if (dBuyStopLossPoint > 0) dStopLoss = Bid-dBuyStopLossPoint*Point; if (dBuyTakeProfitPoint > 0) dTakeProfit = Bid + dBuyTakeProfitPoint * Point; int numorder = OrderSend(Symbol(), OP_BUY, Lots_New, Ask, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenBuy).OrderSendを実行します。 if (numorder > -1 && lFlagUseSound) PlaySound(sSoundFileName)を実行します。 } void OpenSell() { double dStopLoss = 0, dTakeProfit = 0; double Lots_New = Lot; if (isLossLastPos(NULL, -1, MAGIC)) Lots_New *= 2; else if (!isLossLastPos(NULL, -1, MAGIC)) Lots_New = Lot; if (dSellStopLossPoint > 0) dStopLoss = Ask+dSellStopLossPoint*Point; if (dSellTakeProfitPoint > 0) dTakeProfit = Ask-dSellTakeProfitPoint*Point; int numorder = OrderSend(Symbol(,OP_SELL, Lots_New, Bid, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenSell); if (numorder > -1 && lFlagUseSound) PlaySound(sSoundFileName)を実行します。 } [WARNING CLOSED!] Any newbie EA that produces 1650% Need help with simple Валентин 2010.07.13 07:32 #6966 valenok2003: 例題で修正しても構わないのであれば、なぜかうまくいかないのですが。 ObjectSetText("info", str3, fontsize, fontname); ObjectSet("info", OBJPROP_CORNER, corner); ObjectSet("info", OBJPROP_XDISTANCE, xdistance); ObjectSet("info", OBJPROP_YDISTANCE, ydistance); ObjectSet("info", OBJPROP_COLOR, clr); 可変コーナーは外付けにしました(便宜上)。座標の算出元となるコーナーの番号が記載されています Dimitry 2010.07.13 07:56 #6967 Roger: で置き換えてみてください。 if (OrderStopLoss()<pp-(TStop.Buy+TrailingStep-1)*po||OrderStopLoss()==0) まで if (OrderStopLoss()>pp-(TStop.Buy+TrailingStep-1)*po||OrderStopLoss()==0) Roger、ありがとうございます。しかし、まだ正しく動作しません。もう一回トロールしてみましたが、エラーはそのままです :( 1つのポーズをトロールするのと、複数のポーズを同時にトロールするのとでは、何か違いがあるのでしょうか? Sergey Guliaev 2010.07.13 08:11 #6968 rensbit: コーナーの変数を外付けにしました(便宜上)。座標の算出元となるコーナーの番号が記載されています ありがとうございました。 もう1つ質問です。Wingdingsからコメントへ正しく記号を挿入する方法。 Валентин 2010.07.13 08:28 #6969 どの記号? Sergey Guliaev 2010.07.13 08:35 #6970 rensbit: どの記号? 著作権 1...690691692693694695696697698699700701702703704...1145 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
アンカーの角度は、ウィンドウ内のオブジェクトの位置をどの角度からカウントするかということです。角度は左から時計回りに数えます。
右下にスナップする場合、負の座標を設定すればいいのですか?
右下にスナップする場合、負の座標を設定するのでしょうか?
アドバイスをお願いします。
連続するイベントの数(例えば、終値が始値より高い、またはその逆のバーの数)を計算するためには、次のようにしか思いつきませんでした。
(1)連続したシリーズが停止した場合、カウンターの読み取りをリセットする方法、(2)Buffer[i]を正しく書き込む方法、つまり結果自体を「見る」にはどうすればよいのか?
例えば、あるバーのインジケータが「-3」を示した場合、それは3本連続で始値より下に閉じたことを意味し、その次のバーが始値の上に閉じた場合、インジケータは「1」を示す・・・・・・。
int i=Bars-1
while (i > 0) {
int x=0;
int y=0;
if ( Close[i] > Open[i] ) { x++ ;
Buf [i]=x; }.
if (Close[i] < Open[i] ) { y-- ;
Buf2[i] =y ; }.
i--;
}
いいえ、正の座標では、端末が自ら目的のポイントを計算します。例えば、こんな感じです。2コーナーから15ピクセル
推測されないように、コードを表示する
ゴーランドプログラムで作られた、あなたのマーチンを加えたもの。
//+------------------------------------------------------------------+
//| 著作権 2005, Gordago Software Corp.
//| http://www.gordago.com/ |
//| バージョン2.0
//+------------------------------------------------------------------+
#property copyright"著作権 2005, Gordago Software Corp."
#プロパティリンク "http://www.gordago.com"
#define MIN_STOPLOSS_POINT 10
#define MIN_TAKEPROFIT_POINT 10
#define MAGIC 218650
extern string sNameExpert = "ゴルダゴから生成する";
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 Lot = 0.10;
extern int nSlippage = 30;
extern bool lFlagUseHourTrade = True。
extern inttern nFromHourTrade = 0;
extern intToHourTrade = 23;
extern bool lFlagUseSound = False;
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 diOpen0=iOpen(NULL,60,0);
double d1=(0.00030);
double diHigh2=iHigh(NULL,60,0);
double diOpen3=iOpen(NULL,60,0);
double d4=(0.00030)です。
double diLow5=iLow(NULL,60,0);
double diOpen6=iOpen(NULL,60,1);
double diClose7=iClose(NULL,60,1);
double diOpen8=iOpen(NULL,60,2);
double diClose9=iClose(NULL,60,2)。
double diOpen10=iOpen(NULL,60,0);
double d11=(0.00030);
double diHigh12=iHigh(NULL,60,0);
double diOpen13=iOpen(NULL,60,0);
double d14=(0.00030);
double diLow15=iLow(NULL,60,0)。
double diOpen16=iOpen(NULL,60,1);
double diClose17=iClose(NULL,60,1)。
double diOpen18=iOpen(NULL,60,2);
double diClose19=iClose(NULL,60,2);
if(AccountFreeMargin() < (1000*Lot)){。
Print("We have no money.フリーマージン = " + AccountFreeMargin()");
return(0)です。
}
bool lFlagBuyOpen = false, lFlagSellOpen = false, lFlagBuyClose = false, lFlagSellClose = false;
lFlagBuyOpen = (diOpen0+d1>diHigh2 && diOpen3-d4<diLow5 && diOpen6<diClose7 && diOpen8>diClose9) とする。
lFlagSellOpen = (diOpen10+d11>diHigh12 && diOpen13-d14<diLow15 && diOpen16>diClose17 && diOpen18<diClose19);
lFlagBuyClose = Falseとする。
lFlagSellClose = Falseとする。
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)を実行します。
}
//+----------------------------------------------------------------------------+
//| 作成者 : Kim Igor V. aka KimIV, http://www.kimiv.ru||Google Play!
//+----------------------------------------------------------------------------+
| バージョン:2008年2月19日
//| 説明 : 最後の位置が失われたことを示すフラグを返す。
//+----------------------------------------------------------------------------+
//| パラメータ: |
//| sy - 楽器の名前 (" - 任意のシンボル, |)
//| NULL - 現在のシンボル)
| //| op - 操作 (-1 - 任意の位置)
//| mn - MagicNumber (-1 - 任意のマジック) |.
//+----------------------------------------------------------------------------+
bool isLossLastPos(string sy="", int op=-1, int mn=-1) {.
datetime t;
int i, j=-1, k=OrdersHistoryTotal()です。
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {.
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){
if (OrderSymbol()==sy || sy=="){
if (OrderType()==OP_BUY || OrderType()==OP_SELL) { (オーダータイプ()==OP_BUY)
if (op<0 || OrderType()==op) { }.
if (mn<0 || OrderMagicNumber()==mn) {.
if (t<OrderCloseTime()){
t=OrderCloseTime()。
j=iとする。
}
}
}
}
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)){
if (オーダープロフィット()<0) return(True)
}
return(False)です。
}
void OpenBuy(){。
double dStopLoss = 0, dTakeProfit = 0;
double Lots_New = Lot;
if (isLossLastPos(NULL, -1, MAGIC))
Lots_New *= 2;
else if (!isLossLastPos(NULL, -1, MAGIC))
Lots_New = Lot;
if (dBuyStopLossPoint > 0)
dStopLoss = Bid-dBuyStopLossPoint*Point;
if (dBuyTakeProfitPoint > 0)
dTakeProfit = Bid + dBuyTakeProfitPoint * Point;
int numorder = OrderSend(Symbol(), OP_BUY, Lots_New, Ask, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenBuy).OrderSendを実行します。
if (numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName)を実行します。
}
void OpenSell() {
double dStopLoss = 0, dTakeProfit = 0;
double Lots_New = Lot;
if (isLossLastPos(NULL, -1, MAGIC))
Lots_New *= 2;
else if (!isLossLastPos(NULL, -1, MAGIC))
Lots_New = Lot;
if (dSellStopLossPoint > 0)
dStopLoss = Ask+dSellStopLossPoint*Point;
if (dSellTakeProfitPoint > 0)
dTakeProfit = Ask-dSellTakeProfitPoint*Point;
int numorder = OrderSend(Symbol(,OP_SELL, Lots_New, Bid, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenSell);
if (numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName)を実行します。
}
例題で修正しても構わないのであれば、なぜかうまくいかないのですが。
可変コーナーは外付けにしました(便宜上)。座標の算出元となるコーナーの番号が記載されています
で置き換えてみてください。
if (OrderStopLoss()<pp-(TStop.Buy+TrailingStep-1)*po||OrderStopLoss()==0)
まで
if (OrderStopLoss()>pp-(TStop.Buy+TrailingStep-1)*po||OrderStopLoss()==0)
コーナーの変数を外付けにしました(便宜上)。座標の算出元となるコーナーの番号が記載されています
ありがとうございました。
もう1つ質問です。Wingdingsからコメントへ正しく記号を挿入する方法。
どの記号?
著作権