[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 283

 
Shniperson:

こんにちは!上下のバーチェックを「ループ」させる方法を教えてください。 つまり、この状態を「短く」表現するにはどうすればいいのか。

Close[0]>Open[0]&& Close[1]>Open[1]&& Close[2]>Open[2]&& Close[3]>Open[3]&...&& Close[4]>Open[4]&& Close[5]>Open[5]&& Close[6]>Open[6]&& Close[7]>Open[7].

bool Res=true;
for(int i=0;i<8;i++) Res = Res && Close[i]>Open[i];

ありがとうございました。


そうすることも可能ですが、早くなるとは思えません。条件を少し広げる必要がある
 

これをどうやって人生に変えていけばいいのかわからないのですが、できるのでしょうか?

私の戦略は、理想的には、ターミナルの8時に手動で開き、利益があれば、翌日までです。もし利益が私の方向でなければ、損失時に私はポジションを逆転させる+ - 何があっても、私はこの日、より多くのポジションを開かず、朝の8時まで待ちます。つまり、注文は最大で2つまでで、それ以上はないはずです。利益に達しなかったが、TrawlがBreakevenに移動した場合、ロールオーバーも行う。もちろん、全てに対応できるわけではありませんが、仕事柄、ポジションを監視することはできません。注文を出し、EAがそのポジションに従うようにするのがよいでしょう。ストラテジーテスターでテストするためだけにRSIを添付しました。

これだけでいいんです。

extern int Hour_To_Open = 08; //час открытия (-1 - не задано), терминальное время
extern int Minute_To_Open = 00; //минута открытия (-1 - не задано), терминальное время
extern double TakeProfit = 50;
extern double StopLoss = 30;
extern double Lot = 0.1;
extern int MagicNumber = 655433;


//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
if((Hour()==Hour_To_Open) && (Minute()==Minute_To_Open)) 
{ //если настало время открытия сделок
int total = OrdersTotal();
for (int i = 0; i < total; i++) 
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
return(0);
}
} 
int ticket=1;
if(iRSI(NULL,0,14,PRICE_CLOSE,0)>iRSI(NULL,0,14,PR ICE_CLOSE,1))
{
ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Bid - StopLoss * Point,Bid + TakeProfit * Point,"My order #",MagicNumber,0,Blue);
if(ticket<0)
{
Sleep(30000);
}
}
else
{
ticket=OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Ask + StopLoss * Point,Ask - TakeProfit * Point,"My order #",MagicNumber,0,Red);
if(ticket<0)
{
Sleep(30000);
}
}
} //end if((Hour()==Hour_To_Open) && (Minute()==Minute_To_Open))
//----
return(0);
}
//+------------------------------------------------------------------+

このトレーリングストップは、他のEAから取ったものですが、私には機能しません。

extern bool UseTrailing = true; //включение/выключение T-SL
extern int TrailingStop = 50; // Фиксированный размер трала
extern int TrailingStep = 1; // Шаг трала

//+-------------------------------------------------------------------------------------------------------------------+
//| трейлинг стоп лосс |
void T_SL() {
int i=0;
for(i=0; i<OrdersTotal(); i++) {
if(!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
if(OrderSymbol() != Symbol()) continue; 

if(OrderType()==OP_BUY) {
if(NormalizeDouble(Bid-OrderOpenPrice(),Digits)>NormalizeDouble(TrailingS top*Point,Digits)) {
if(NormalizeDouble(OrderStopLoss(),Digits)<Normali zeDouble(Bid-(TrailingStop+TrailingStep-1)*Point,Digits))
OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(Bid-TrailingStop*Point,Digits), OrderTakeProfit(), 0, CLR_NONE);
} //end if(NormalizeDouble(Bid-OrderOpenPrice(),Digits)>NormalizeDouble(TrailingS top*Point,Digits))
} //end if(OrderType()==OP_BUY)

if(OrderType()==OP_SELL) {
if(NormalizeDouble(OrderOpenPrice()-Ask,Digits)>NormalizeDouble(TrailingStop*Point,Dig its)) {
if(NormalizeDouble(OrderStopLoss(),Digits)>Normali zeDouble(Ask+(TrailingStop+TrailingStep-1)*Point,Digits))
OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(Ask+TrailingStop*Point,Digits), OrderTakeProfit(), 0, CLR_NONE);
} //end if(NormalizeDouble(OrderOpenPrice()-Ask,Digits)>NormalizeDouble(TrailingStop*Point,Dig its))
} //end if(OrderType()==OP_SELL)
} //end for(i=0; i<OrdersTotal(); i++)
} //end void T_SL()
//| трейлинг стоп лосс |
//+-------------------------------------------------------------------------------------------------------------------+

どのように添付すればよいですか?そしてリバーサル、それはポジションを開いた 後、一度だけ機能するはずです。

 

リバースはこの辺りを探しているのだろう?

boolOrderCloseBy()int ticket, int opposite, color Color=CLR_NONE)
あるオープンポジションを、同じ商品でオープンした別のポジションでクローズすること。ただし、反対方向。関数が正常に終了した場合に TRUE を返します。関数が失敗した場合、FALSE を返す。エラーの情報を得るには、GetLastError() 関数を呼び出します。
パラメータ
チケット - クローズされる注文の固有のシリアル番号。
対極 - 逆順のユニークなシーケンス番号。
カラー - チャート上の終値の矢印の色。パラメータがない場合、またはその値がCLR_NONEの場合、チャート上に矢印は表示されません。
 if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75) { OrderCloseBy(order_id,opposite_id); return(0); } }.

 
プロフェッショナルさん、ツールバーからスクリプトを実行することは可能かどうか、教えてください。今のところ、書いたスクリプトはナビゲーターから実行するか、あらかじめ設定したキーの組み合わせで実行する必要があります(これはなぜかたまにしか機能しません)。質問:例えば、「グラフィカルツール」パネルのアイコンに新しい機能を割り当て、ツールバーからスクリプトを実行することは可能でしょうか?他の選択肢もあるのでは?
 

こんにちは。

OrderSend() 関数の元のコードを見ることができる場所を教えてください。

ありがとうございました。

 
kon12:
エキスパートさん、アドバイス、ツールバーからスクリプトを実行することは可能でしょうか?今のところ、スクリプトはナビゲーターから実行するか、あらかじめ設定したキーの組み合わせで実行する必要があります(なぜか一度だけしか動作しません)。質問:例えば、「グラフィカルツール」パネルのアイコンに新しい機能を割り当てて、ツールバーからスクリプトを実行することは可能でしょうか?他に選択肢はないのでしょうか?

いいえ、しかし、例としてラベルオブジェクトのドラッグ&ドロップを使用 することができます ...

ダウンロード 、置換で端末に展開、端末設定でdllのインポートを許可、Expert AdvisorをExpertsに 添付 、実行するスクリプト名を入力して端末を再起動またはコンパイル する。

Expert Advisor が実装 - チャート上でオブジェクトをドラッグすると、その名前で指定したチャートにスクリプトをロードします。

      ServiceLoadScript(WindowHandle(Symbol(), Period()), "ZZ_All_Quotings 4.10425", /*<---- Имя загружаемого скрипта.*/  false);
ファイル:
trade_1.mq4  2 kb
 

こんにちは!!!

アドバイスをお願いします。私はチャンネルブレイクで 動作するEAを書いています、チャンネルの後ろに2つの保留を置く。ひとつがトリガーになると、もうひとつが削除されるはずです。コードにどのように実装するか?

 
Parn25:

こんにちは!!!

アドバイスをお願いします。私はチャンネルブレイクで動作するEAを書いています、チャンネルの後ろに2つの保留を置く。どちらかがトリガーされると、もう一方は削除されるはずです。コードにどのように実装するか?


おそらくこれは良いアイデアでしょう - 私自身はやったことがありませんが - あなたのEAが(以前に発注した2つの保留中の注文のうち)1つの成行注文しか許可しない場合、あなたの(魔術師による)注文(成行)が市場で利用可能かを監視(追跡)し、それが表示されたらすぐに、保留中を削除して ください。以上です。保留中の注文を削除したい場合は、「delete orders site:mql4.com」のようにググってみてください。
 

こんにちは。

テスターでEAを実行する。サーバーは4桁です。ログに売買注文を 出すと、次のように表示されます。

2011.10.23 15:27:26 2010.12.16 06:16 test_sovetnik GBPUSD,H1: open #1 buy 0.10 GBPUSD at 1.5551 sl: 1.4551 tp: 1.5586 ok.

しかし、1.55512でオープン !5桁で。そして、保留中の注文は4桁で発注され、同様に4桁でトリガーされる。しかし、OP_SELLとOP_BUYは5桁しか開かない!?

NormalizeDouble(Ask,Digits)を行っています。

何も動かない!?この問題を解決する方法を教えてください。

もちろん、下1桁は無視してもかまいません。エラーは発生しませんが、実験の純度を高めるために、すべてのトレードを4桁で行ってほしいのです。

 
ZZZEROXXX:
標準的な移動平均などのEAを、非標準のタイムフレームで動作させるためにスクリプトに修正する方法を教えてください。


UP.EAをスクリプト化する方法を簡単に教えていただけると幸いです。