for(int cnt=0;cnt<OrdersTotal();cnt++){ OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); iTicket=OrderTicket(); Comment("\nOrderTicket = ", iTicket); // проверяем переданные значения if ((iTicket==0) || ((iTmFrme!=1) && (iTmFrme!=5) && (iTmFrme!=15) && (iTmFrme!=30) && (iTmFrme!=60) && (iTmFrme!=240) && (iTmFrme!=1440) && (iTmFrme!=10080) && (iTmFrme!=43200)) || (iMAPeriod<2) || (MAMethod<0) || (MAMethod>3) || (iApplPrice<0) || (iApplPrice>6) || (iShift<0) || (iIndent<0)) {Comment("\nТрейлинг функцией TrailingByMA() невозможен из-за некорректности значений переданных ей аргументов."); return(0);} // определим значение МА с переданными функции параметрами double dMA = iMA(Symbol(),iTmFrme,iMAPeriod,iMAShift,MAMethod,iApplPrice,iShift);// значение скользящего среднего с переданными параметрами // если длинная позиция, и её стоплосс хуже значения среднего с отступом в iIndent пунктов, модифицируем его if (OrderType()==OP_BUY){ if ((OrderStopLoss()<dMA-iIndent*Point) && (dMA-iIndent*Point<Bid-MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)){ if (!OrderModify(iTicket,OrderOpenPrice(),dMA-iIndent*Point,OrderTakeProfit(),OrderExpiration())) Comment("Не удалось модифицировать стоплосс ордера №",OrderTicket(),". Ошибка: ",GetLastError());}} // если позиция - короткая, и её стоплосс хуже (выше верхней границы канала или не определён, ==0), модифицируем его if (OrderType()==OP_SELL){ if (((OrderStopLoss()==0) || (OrderStopLoss()>dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point)) && (dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point>Ask+MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)) {if (!OrderModify(iTicket,OrderOpenPrice(),dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point,OrderTakeProfit(),OrderExpiration())) Print("Не удалось модифицировать стоплосс ордера №",OrderTicket(),". Ошибка: ",GetLastError());}}}
グリッチな風と一緒にダウン :)
角度を測るには、点+基準となる点と、角度を測る点が必要です。
まずは手始めに。
int cnt, total;
total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
iTicket=OrderTicket();
}
まずはじめに
以下は、オーダーオーバーが発生したコードのスニペットです。トレーリングストップのコードは、ここから引用しています。トレーリングストップのための関数とエキスパートアドバイザーのライブラリ / Yuri Dzyuban」。
0を返せ!!!!!!!!!!!!!!(大声for(int cnt=0;cnt<OrdersTotal();cnt++){
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
iTicket=OrderTicket();
Comment("\nOrderTicket = ", iTicket);
// проверяем переданные значения
if ((iTicket==0) || ((iTmFrme!=1) && (iTmFrme!=5) && (iTmFrme!=15) && (iTmFrme!=30) && (iTmFrme!=60) && (iTmFrme!=240) && (iTmFrme!=1440) && (iTmFrme!=10080) && (iTmFrme!=43200)) || (iMAPeriod<2) || (MAMethod<0) || (MAMethod>3) || (iApplPrice<0) || (iApplPrice>6) || (iShift<0) || (iIndent<0))
{Comment("\nТрейлинг функцией TrailingByMA() невозможен из-за некорректности значений переданных ей аргументов."); return(0);}
// определим значение МА с переданными функции параметрами
double dMA = iMA(Symbol(),iTmFrme,iMAPeriod,iMAShift,MAMethod,iApplPrice,iShift);// значение скользящего среднего с переданными параметрами
// если длинная позиция, и её стоплосс хуже значения среднего с отступом в iIndent пунктов, модифицируем его
if (OrderType()==OP_BUY){
if ((OrderStopLoss()<dMA-iIndent*Point) && (dMA-iIndent*Point<Bid-MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)){
if (!OrderModify(iTicket,OrderOpenPrice(),dMA-iIndent*Point,OrderTakeProfit(),OrderExpiration()))
Comment("Не удалось модифицировать стоплосс ордера №",OrderTicket(),". Ошибка: ",GetLastError());}}
// если позиция - короткая, и её стоплосс хуже (выше верхней границы канала или не определён, ==0), модифицируем его
if (OrderType()==OP_SELL){
if (((OrderStopLoss()==0) || (OrderStopLoss()>dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point)) && (dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point>Ask+MarketInfo(Symbol(),MODE_STOPLEVEL)*Point))
{if (!OrderModify(iTicket,OrderOpenPrice(),dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point,OrderTakeProfit(),OrderExpiration()))
Print("Не удалось модифицировать стоплосс ордера №",OrderTicket(),". Ошибка: ",GetLastError());}}}
スウェッテン 、何かあったら書いてね。
何かあったら書いてください。
ありがとうございました。ただ、私のせいです。return(0)で高いサイクルになったので、少しずつ隠れて痛んでいたのです。
質問ですが、ロットサイズを入力し、ペアを指定すると、このロットを買うのに必要な金額(例えばルーブル)、ポイント値などを表示してくれるプログラムはありませんか?
ただ、毎回、例えばGBPUSDを1.3ロット、次にEURJPIを2.8ロットと数えるのは少し疲れますね。
ありがとうございました。ただ、私のミスで、return(0)のサイクルが高かったので、少しずつ隠れて痛んでいたのです。
質問ですが、ロットサイズを入力し、ペアを指定すると、このロットを買うのに必要な金額(例えばルーブル)、ポイント値などを表示してくれるプログラムはありませんか?
ただ、例えばGBPUSDを1.3ロット、EURJPIを2.8ロットとカウントするたびに、ちょっと面倒になりますね。
GBPUSDで、彼は微笑んだ。EBUJPIでは、パタパタと倒れました。ごめんなさい、悪い意味で言ってるんじゃないんです。
もう一つ質問ですが、変数が3つあります。種類を問わない。3つの変数のうち2つが条件に該当する場合、so-and-soを実行する、という条件は実現可能でしょうか。
トピックを「Swettenからの質問」に改名することをお勧めします -)
それはそうと =)
一本真剣に使っています=)もう2日続いています。
を練習 するには、200ポンドです。
MTSの場合は、もう少し本格的な 700ポンドです。
7,000ポンドから。
IMHO =)
ここにも良い質問があります。
P1[a、b、step]の場合
P2[c、d、step]の場合
P3[e,f,step]の場合
P4[g、h、step]の場合
P5[i, j, step].
ファイルに 一気に書き込んで、そこから読み出すにはどうしたらいいのでしょうか?
こんな感じでやりました。
中身がナンセンスであることを除けば、すべて素晴らしく書かれているのです。教科書はちょっと残念ですね、本当に!また、テーブルのようなデータの書き方、読み方はどうするのでしょうか?こんなアレイも?一般的には?キムのライブラリーには、ルックがあります。ありがとうございました。ただ、私のミスで、return(0)のサイクルが高かったので、少しずつ隠れて痛んでいたのです。
質問ですが、ロットサイズを入力し、ペアを指定すると、このロットを買うのに必要な金額(例えばルーブル)、ポイント値などを表示してくれるプログラムはありませんか?
ただ、例えばGBPUSDを1.3ロット、EURJPIを2.8ロットとカウントするたびに、ちょっと面倒になりますね。