int start() { イント cnt=0とする。 のチケットを購入します。 の合計です。 二重 StochK_0, // K線値 StochD_1, // D線の値 SL=StopLoss。 isCloseLastPosByStop()。 if (Bars<100) { Print("bars less than 100"); return(0)です。 } StochK_0=iStochastic(NULL, 0, K_per,D_per,Slow,MODE_SMA,0,MODE_MAIN, 0); // K StochD_1=iStochastic(NULL, 0, K_per,D_per,Slow,MODE_SMA,0,MODE_MAIN, 2); //D total=OrdersTotal()。 if(total<1) if ((StochK_0>StochD_1) && StochD_1 > 80) // 売れ行き条件 { ticket=OrderSend(Symbol(,OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green)) を実行します。 if(チケット>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice()) } else Print("Error opening SELL order : ",GetLastError()); return(0)です。 } for(cnt=0;cnt<total;cnt++) { RefreshRates()。 OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && // これはオープンポジションですか?OP_BUYまたはOP_SELL OrderSymbol()==Symbol()) // ツールマッチ? { if(OrderType()==OP_SELL) // ポジションはオープンです。 SSL=isCloseLastPosByStop(); if(SSL==true) { Print("StopLoss")。 } total=OrdersTotal()。 if(total<1) if ((StochK_0<StochD_1) && StochK_0 < 50) // StopLossが発動された場合の売り条件 { ticket=OrderSend(Symbol(,OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green)) を実行します。 if(チケット>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice()) } else Print("Error opening SELL order : ",GetLastError()); return(0)です。 } for(cnt=0;cnt<total;cnt++) { RefreshRates()。 OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && // これはオープンポジションですか?OP_BUYまたはOP_SELL OrderSymbol()==Symbol()) // ツールマッチ? { if(OrderType()==OP_SELL) // ポジションはオープンです。 { if(StochK_0>StochD_1 && StochD_1 < 50) // クローズ条件 { オーダークローズ(オーダーチケット(),オーダーロット(),アスク,3,バイオレット); // クローズポジション return(0); // 終了 }}}}}}} //___user fu-ya bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {. datetime t; double ocp, osl; int dg, 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) {。 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)){ dg=MarketInfo(sy, MODE_DIGITS); if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2; ocp=NormalizeDouble(OrderClosePrice(), dg)。 osl=NormalizeDouble(OrderStopLoss(),dg)となります。 if (ocp==osl) return(True); } return(False)です。 }
次のバーで次の取引ができるように、取引を終了するにはどのようなコードを書けばよいか教えてください。
そこで質問ですが、どのように取引を成立させるのでしょうか?ストップなのか(これはもっと複雑)、それとも自分たちで閉めるのか。自分たちで閉じれば、もっと簡単なんです。
価格チャートのローソク足を、Awesome Oscillatorと Acceleration/Deceleration Oscillatorが緑の時は緑に、Awesome OscillatorとAcceleration/Deceleration Oscillatorが赤の時は赤に、指標の色が異なる時はグレーにする方法を教えてください。
私は燭台を描いたことがないのですが、この七面鳥の台座は確かに見たことがあります。本当に、4ヶ月ほど前です。調べてみてください。
そこで質問ですが、どのように取引を成立させるのでしょうか?ストップなのか(これはもっと複雑)、それとも自分たちで閉めるのか。自分たちで閉じれば、もっと簡単なんです。
取引はテイクプロフィットまたはストップロスで終了します。
質問です。
私はこのようなツールの引用符を書き込むインジケータを持っている - 2321.50000000。
余分なゼロを取り除くにはどうしたらよいですか?
ここの書き込み専門家について非常に良い。http://www.vedikhin.ru/2006/06/expert-advisors-overview.html
そして、FXの神様が私を許してくれますように、Wordov形式です.
私も手伝ってください。
コンパイラの制限事項配列の制限(配列の数とか要素の総数とか、割り当てメモリのようなもの)、スーパーグローバルという意味でのグローバル 変数の数について知りたいのですが。
皆さん、こんにちは。
エキスパートを書くことにしました。ストックを 取った。注文は1つでいいと思うのですが、80より上で売り、50より下で決済します。また、損失を減らすためにStopLossを 追加しています。テストしてみました。エキスパートが動いているようですが、時々StopLossが 次々と取られてしまいます。そこで、最初のLossの 後に取引条件を変更し、最初の条件と明らかに異なるようにすることにしました。そのために、Kimaさんからパクって気に入ったisCloseLastPosByStop関数を導入しました。Lossが 働けばシグナルを送り、日記に書き込みます。シグナル後 if(SSL==true) 新しい売り条件を設定しています。書いて、コンパイルして、起動しました。動作はしますが、 LossOを何箇所か連続でしないと止まらない のも特徴です。私はMQL 4の経験が浅いので、何が問題なのかわかりません。私たちはこの辺りの人間ではないのです......。 そして、このアイデアを別の方法で実現する方法を、誰かが教えてくれるかもしれません。事前にありがとうございます。ここは良い場所です、私は資格のあるアドバイスなしに行ったことはありません...。
#property copyright"アレックス"
#プロパティリンク "http://www.сайта.net"//---- 入力パラメータ
extern int int MagicNamber=88881;
extern int K_per=30;
extern int D_per=8;
extern int Slow=10;
extern double Lots=1.0;
extern double StopLoss=300;
extern double SSL=0;
//+------------------------------------------------------------------+
int start(){
イント
cnt=0とする。
のチケットを購入します。
の合計です。
二重
StochK_0, // K線値
StochD_1, // D線の値
SL=StopLoss。
isCloseLastPosByStop()。
if (Bars<100)
{
Print("bars less than 100");
return(0)です。
}
StochK_0=iStochastic(NULL, 0, K_per,D_per,Slow,MODE_SMA,0,MODE_MAIN, 0); // K
StochD_1=iStochastic(NULL, 0, K_per,D_per,Slow,MODE_SMA,0,MODE_MAIN, 2); //D
total=OrdersTotal()。
if(total<1)
if ((StochK_0>StochD_1) && StochD_1 > 80) // 売れ行き条件
{
ticket=OrderSend(Symbol(,OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green)) を実行します。
if(チケット>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("SELL order opened : ",OrderOpenPrice())
}
else Print("Error opening SELL order : ",GetLastError());
return(0)です。
}
for(cnt=0;cnt<total;cnt++)
{
RefreshRates()。
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // これはオープンポジションですか?OP_BUYまたはOP_SELL
OrderSymbol()==Symbol()) // ツールマッチ?
{
if(OrderType()==OP_SELL) // ポジションはオープンです。
SSL=isCloseLastPosByStop();
if(SSL==true)
{
Print("StopLoss")。
}
total=OrdersTotal()。
if(total<1)
if ((StochK_0<StochD_1) && StochK_0 < 50) // StopLossが発動された場合の売り条件
{
ticket=OrderSend(Symbol(,OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green)) を実行します。
if(チケット>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("SELL order opened : ",OrderOpenPrice())
}
else Print("Error opening SELL order : ",GetLastError());
return(0)です。
}
for(cnt=0;cnt<total;cnt++)
{
RefreshRates()。
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // これはオープンポジションですか?OP_BUYまたはOP_SELL
OrderSymbol()==Symbol()) // ツールマッチ?
{
if(OrderType()==OP_SELL) // ポジションはオープンです。
{
if(StochK_0>StochD_1 && StochD_1 < 50) // クローズ条件
{
オーダークローズ(オーダーチケット(),オーダーロット(),アスク,3,バイオレット); // クローズポジション
return(0); // 終了
}}}}}}}
//___user fu-ya
bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {.
datetime t;
double ocp, osl;
int dg, 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) {。
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)){
dg=MarketInfo(sy, MODE_DIGITS);
if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
ocp=NormalizeDouble(OrderClosePrice(), dg)。
osl=NormalizeDouble(OrderStopLoss(),dg)となります。
if (ocp==osl) return(True);
}
return(False)です。
}
質問です。
私はこのようなツールの引用符を書き込むインジケータを持っている - 2321.50000000。
余分なゼロを取り除くには?
DoubleToStr()演算子が役に立ちます。